我知道日期格式,例如
"yyyy-mm-dd"
- 以 2011-02-26
"yyyy-MMM-dd"
- 以 2011-FEB-26
格式显示日期
用于例如:
SimpleDateFormat formatter = new SimpleDateFormat(
"yyyy/MMM/dd ");
我想要一种可以帮助我显示星期几的格式,例如
2011-02-MON
或其他内容。我只想将星期几与月份和年份一起显示在字符中。你能告诉我这样的格式吗?
这应该显示“星期二”:
new SimpleDateFormat("EEE").format(new Date());
这应该显示“星期二”:
new SimpleDateFormat("EEEE").format(new Date());
这应该显示“T”:
new SimpleDateFormat("EEEEE").format(new Date());
所以你的具体例子是:
new SimpleDateFormat("yyyy-MM-EEE").format(new Date());
是的 - “E”就可以了
http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
Date date = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-E");
System.out.println(df.format(date));
SimpleDateFormat sdf=new SimpleDateFormat("EEE");
EEE 代表星期几,例如星期四显示为 Thu。
LocalDate.of( 2018 , Month.JANUARY , 23 )
.format( DateTimeFormatter.ofPattern( "uuuu-MM-EEE" , Locale.US ) )
现代方法使用 java.time 类。
LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 ) ;
请注意我们如何指定
Locale
(例如 Locale.CANADA_FRENCH
)来确定用于翻译当天名称的人类语言。
DateTimeFormatter f = DateTimeFormatter.ofPattern( "uuuu-MM-EEE" , Locale.US ) ;
String output = ld.format( f ) ;
顺便说一句,您可能对标准ISO 8601 周编号方案感兴趣:
yyyy-Www-d
。
2018-W01-2
第 1 周是日历年的第一个星期四。一周从星期一开始。一年有 52 周或 53 周。日历年的最后/前几天可能会落在下一个/上一周的年份中。
末尾的个位数是星期几,1-7 表示周一至周日。
将 ThreeTen-Extra 库类添加到您的项目中的
YearWeek
类。
java.time框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如
java.util.Date
、Calendar
和SimpleDateFormat
。
Joda-Time项目现在处于维护模式,建议迁移到java.time类。
要了解更多信息,请参阅 Oracle 教程。并在 Stack Overflow 上搜索许多示例和解释。规格为JSR 310。
从哪里获取java.time类?
ThreeTen-Extra 项目通过附加类扩展了 java.time。该项目是 java.time 未来可能添加的内容的试验场。您可能会在这里找到一些有用的类,例如
Interval
、YearWeek
、YearQuarter
和 more。
我知道问题是如何将星期几作为字符串(例如短名称),但是对于任何正在寻找数字星期几的人(就像我一样),您可以使用新的“u”格式字符串,从 Java 7 开始支持。例如:
new SimpleDateFormat("u").format(new Date());
返回今天的星期索引,即:1 = 星期一,2 = 星期二,...,7 = 星期日。