標準の ISO 8601 形式の文字列があり、次のようなWebサービスから返された日付/時刻が含まれています。
String dtStart = "2010-10-15T09:27:37Z"
これを時刻や日付などのオブジェクトに取得するにはどうすればよいですか?最初は別の形式で出力したいのですが、後で他のことをする必要があります(つまり、別の形式で使用する可能性があります)。
乾杯
String dtStart = "2010-10-15T09:27:37Z";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
try {
Date date = format.parse(dtStart);
System.out.println(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
これはあなたが探しているものです。この問題について 既存の投稿 があります。
この質問は2010年に行われたものであり、当時はSimpleDateFormat
またはJoda-Timeが使用すべきツールであることが正しかった。かなり前になりました。今日の使用
Instant iStart = Instant.parse(dtStart);
はい、これは簡単です。文字列はISO 8601形式で、Java.time
のクラス、現代のJava日付と時刻API、明示的なフォーマッタなしでISO 8601を解析します。Instant
はこれらのクラスの1つです。
はい、Java.time
は古いものと新しいものでうまく動作しますAndroidデバイス。少なくともJava6。
org.threeten.bp
から日時クラスをインポートしてください。Java.time
の使用方法の説明。Java.time
が最初に記述された場所。Java.time
toのバックポートJava 6および7(JSR-310のThreeTen)。JavaのSimpleDateFormat解析メソッド を使用するか、 JodaTimeのDateTimeFormat を使用してDateTimeFormatterを作成し、 DateTimeオブジェクトに解析 を適宜使用できます。