デッドプール :
私は、この形式で日付を持っているyyyy-MM-dd'T'HH:mm:ss'Z'
が、私は使用してこれを解析していながら、OffsetDateTime.parse(date);
それを排除することによって、文字列を返します。seconds
ロジック:それはある場合、日付から日を取得Saturday
またはSunday
変更日月曜日に、日付文字列を返します
String date = "2018-12-30T06:00:00Z";
System.out.println(date);
try {
OffsetDateTime dateTime = OffsetDateTime.parse(date);
System.out.println(dateTime); //2018-12-30T06:00Z
DayOfWeek day = dateTime.getDayOfWeek();
// check if price change date is Sunday or Saturday and change it to Monday
if (day.equals(DayOfWeek.SATURDAY) || day.equals(DayOfWeek.SUNDAY)) {
String finalDateTime = dateTime.with(TemporalAdjusters.next(DayOfWeek.MONDAY)).toString();
System.out.println(finalDateTime); //2018-12-31T06:00Z
}else {
System.out.println(date);
}
}catch(Exception ex) {
System.out.println(ex);
System.out.println(date);
}
私は、同じ入力フォーマットとして文字列を返す必要があります yyyy-MM-dd'T'HH:mm:ss'Z'
チャールズDowbecki:
どおりOffsetDateTime.toString()
省略部分がゼロであることが暗示されている間、メソッドのJavadoc値の最短のフォーマットが使用されます。以下のための最短のフォーマットが2018-12-30T06:00:00Z
ありuuuu-MM-dd'T'HH:mmXXXXX
秒とnanos値がスキップされて:
出力は次のISO-8601のいずれかの形式になります。
- UUUU-MM-dd'T'HH:mmXXXXX
- UUUU-MM-dd'T'HH:MM:ssXXXXX
- UUUU-MM-dd'T'HH:MM:ss.SSSXXXXX
- UUUU-MM-dd'T'HH:MM:ss.SSSSSSXXXXX
- UUUU-MM-dd'T'HH:MM:ss.SSSSSSSSSXXXXX
使用されるフォーマットは省略部分がゼロであることが暗示されている時間の完全な値を出力する最短であろう。
あなたは正確な形式が使用が必要な場合はDateTimeFormatter
、出力の日付に特定のパターンでインスタンスを:
String date = "2018-12-30T06:00:00Z";
OffsetDateTime dt = OffsetDateTime.parse(date);
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");
System.out.println(fmt.format(dt));