我在message.properties
收到了iso
格式的日期。如何解析它以获得Java
和MM
。
iso格式的日期:DD
答案 0 :(得分:1)
一些参考文献
http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html
Calendar cal = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault()) ;
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.getDefault());
try {
Date date = dateformat.parse("2015-08-10T21:00:00.090Z");
cal.setTime(date);
String result = new SimpleDateFormat("MM dd", Locale.getDefault()).format(cal.getTime());
System.out.println(result);
} catch (ParseException e) {
e.printStackTrace();
}
希望有所帮助
答案 1 :(得分:1)
另一个答案使用现在由java.time类取代的麻烦的旧日期时间类。
在解析和生成表示日期时间值的字符串时,java.time类默认使用ISO 8601格式。
Instant
代表UTC时间轴上的一个时刻,分辨率为纳秒。
Instant instant = Instant.parse( "2015-08-10T21:00:00.090Z" );
调整您想要查看此刻的时区。
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( z );
您可以查询月份和日期。
int month = zdt.getMonthValue();
int dayOfMonth = zdt.getDayOfMonth();