Java:使用新的模式字母扩展SimpleDateFormat

时间:2012-11-25 10:54:44

标签: java date simpledateformat hebrew

Java SimpleDateFormat用于将Date对象格式化为字符串。格式化程序支持各种模式字母,它表示日期字段的文本表示。例如,yy为两个字母的年份,yyyy为四个字母的年份,E为星期几。

例如,使用SimpleDateFormat初始化的yyyy.MM.dd G 'at' HH:mm:ss z会将日期格式化为2001.07.04 AD at 12:08:56 PDT

我想在SimpleDateFormat中添加一些模式字母。例如,希望C表示希伯来语工作日(יום ראשוןיום שני,...)。

使用这些新模式字母扩展SimpleDateFormat的正确方法是什么?我能找到的唯一在线示例seems somewhat complicated。我只能使用格式化而不进行解析。

3 个答案:

答案 0 :(得分:4)

E已经可以用来获取星期几。如果你想要希伯来语,那么initialize the SimpleDateFormat instance with the hebrew locale

答案 1 :(得分:1)

据我所知,SDF不是可扩展的构建,因此每个Calendar字段格式都被硬编码到一个方法中:(。我会做的是创建一个包装器对象并检测特殊的(由我处理的字符)和格式我自己以混合格式输出我会将格式划分为格式为char之前和之后的格式,然后将它们传递给原始SDF,然后将结果粘合在一起。

答案 2 :(得分:0)

java.time

SimpleDateFormat之前,现代的DateTimeFormatter取代了JSR310。

研究该类JavaDoc可以查看其许多格式代码。尽管与SimpleDateFormat类中使用的代码非常相似,但还是有一些区别。

该课程可以automatically localize为您服务。因此,您可能不需要定义任何格式模式。

如果只想本地化星期几的名称,请使用DayOfWeek::getDisplayName方法。