あなたのフォーマット、YYYY-mm-dd'T'HH:MM:ss'Z' 正しくありません。この形式で間違っていることをすべて話し合いましょう。
-
Yを使用しましたyの代わりに : 記号YWeek yearに使用されますyYearに使用されます 。 year-of-の違いを確認してください時代と週ベースの年? 詳細については、こちらをご覧ください。 -
mmを使用しました 月の場合: 月の正しい記号はMです。 。 -
MMを使用しました 数分間: 分の正しい記号はmです。 。 -
Zを同封しました 一重引用符で囲みます: シンボルZTime zoneに使用されます 一方、'Z'文字リテラルに他なりません。おそらく、+00:00のタイムゾーンオフセットをフォーマットする必要がありますZとして このためには、実際にはXを使用する必要があります 。
したがって、正しい形式は次のとおりです。
yyyy-MM-dd'T'HH:mm:ssX
推奨される形式のデモ:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX", Locale.ENGLISH);
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
System.out.println(sdf.format(date));
}
}
出力:
2021-01-14T08:13:01Z
java.utilの日時APIに注意してください およびそれらのフォーマットAPI、SimpleDateFormat 古く、エラーが発生しやすいです。それらの使用を完全に停止し、最新の日時API
。
- 何らかの理由で、Java6またはJava7に固執する必要がある場合は、ThreeTen-バックポート java.timeのほとんどをバックポートします Java6および7の機能。
- Androidプロジェクトで作業していて、Android APIレベルがまだJava-8に準拠していない場合は、脱糖によって利用可能なJava8以降のAPI
および
AndroidプロジェクトでThreeTenABPを使用する方法> 。
Date#toInstant
java.util.Dateを変換します java.time.Instantへのオブジェクト(レガシータイプ) (モダンタイプ)。 Instant タイムライン上の瞬間的なポイントを表し、ほとんどのJSON操作に十分なはずです。 Instant#toString
ISO-8601標準
に準拠したUTCタイムゾーンオフセットを含む日時文字列を返します 。
デモ:
import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
Instant instant = date.toInstant();
// Print the value of instant#toString
System.out.println(instant);
OffsetDateTime odt = instant.atOffset(ZoneOffset.UTC);
System.out.println(odt);
// Custom format
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX", Locale.ENGLISH);
System.out.println(dtf.format(odt));
}
}
出力:
2021-01-14T08:28:35.659Z
2021-01-14T08:28:35.659Z
2021-01-14T08:28:35Z