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。我只能使用格式化而不进行解析。
答案 0 :(得分:4)
E
已经可以用来获取星期几。如果你想要希伯来语,那么initialize the SimpleDateFormat instance with the hebrew locale。
答案 1 :(得分:1)
据我所知,SDF不是可扩展的构建,因此每个Calendar字段格式都被硬编码到一个方法中:(。我会做的是创建一个包装器对象并检测特殊的(由我处理的字符)和格式我自己以混合格式输出我会将格式划分为格式为char之前和之后的格式,然后将它们传递给原始SDF,然后将结果粘合在一起。
答案 2 :(得分:0)
在SimpleDateFormat
之前,现代的DateTimeFormatter
取代了JSR310。
研究该类JavaDoc可以查看其许多格式代码。尽管与SimpleDateFormat
类中使用的代码非常相似,但还是有一些区别。
该课程可以automatically localize为您服务。因此,您可能不需要定义任何格式模式。
如果只想本地化星期几的名称,请使用DayOfWeek::getDisplayName
方法。