如何解析 Java 中 ISO 格式的日期?
How to Parse Date in ISO format in Java?
我在 Java
中收到 iso
格式日期。我如何解析它以获得 MM
和 DD
。
iso 格式的日期:2015-08-10T21:00:00.090Z
一些参考资料
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();
}
希望对您有所帮助
java.time
另一个答案使用麻烦的旧日期时间 类 现在被 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();
我在 Java
中收到 iso
格式日期。我如何解析它以获得 MM
和 DD
。
iso 格式的日期:2015-08-10T21:00:00.090Z
一些参考资料
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();
}
希望对您有所帮助
java.time
另一个答案使用麻烦的旧日期时间 类 现在被 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();