ISO 8601 定义了ISO 星期日期格式。它可以用来表示这样的日期:
2013-10-05等于2013-W40-6,这是 ISO 周中的日期2013-W402008-12-29等于2009-W01-1,它是 ISO 周中的日期2009-W01。
如何在 ISO 星期日期和 Joda Time 类型之间来回转换,例如ReadableDateTime?
ISO 8601 定义了ISO 星期日期格式。它可以用来表示这样的日期:
2013-10-05等于2013-W40-6,这是 ISO 周中的日期2013-W402008-12-29等于2009-W01-1,它是 ISO 周中的日期2009-W01。如何在 ISO 星期日期和 Joda Time 类型之间来回转换,例如ReadableDateTime?
使用 Joda Time 提供的ISODateTimeFormat.
它有以下方法:
ISODateTimeFormat.weekyearWeekDay()和ISODateTimeFormat.weekDate()(对于诸如 等格式2009-W01-1)ISODateTimeFormat.weekyearWeek()(对于诸如 等格式2009-W01)ISODateTimeFormat.basicWeekDate()(对于紧凑的格式,例如2009W011)它们可以这样使用:
ReadableDateTime endOfYearDateTime = DateTime.parse("2008-12-29T13:06Z");
logger.info("endOfYearDateTime : {}", endOfYearDateTime);
String endOfYearISOWeekDateString = ISODateTimeFormat.weekyearWeekDay().print(endOfYearDateTime);
logger.info("isoCalendarWeekDateString: {}", endOfYearISOWeekDateString);
ReadableDateTime reverseEndOfYearDateTime = ISODateTimeFormat.weekyearWeekDay().parseDateTime(endOfYearISOWeekDateString);
logger.info("reverseEndOfYearDateTime : {}", reverseEndOfYearDateTime);
上面的代码将记录以下数据:
endOfYearDateTime : 2008-12-29T13:06:00.000Z
isoCalendarWeekDateString: 2009-W01-1
reverseEndOfYearDateTime : 2008-12-29T00:00:00.000+01:00