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