1

a)。日付、時刻、timeZoneを表す3つの文字列があります。元。:

String date = "2012-09-04";
String time = "01:30:17";
String timeZone = "UTC";

これらの文字列を使用して日付を作成したいと思います。

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
Date createdDate = formatter.parse(date + " " + time + " " + timeZone);

動作しません-「解析できない日付」というメッセージが表示されます。

b)。特定のタイムゾーンでAndroidデバイスの日付を取得するにはどうすればよいですか?現在の時刻をたとえばUTCtimeZoneに変換する方法を見つけました。

Calendar cldr = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateInUTCTimeZone = sdf.format(cldr.getTime());

しかし、結果をDateオブジェクトにしたいのです。

4

1 に答える 1

3

文字列「UTC」は、Date パーサーが認識できるものではありません。UTC を定義するためにこの定数を使用する必要がある場合は、次の日付形式が適しています。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss 'UTC'");

ただし、rfc3990 標準を使用することを強くお勧めします。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 

次に、日付を次の文字列 (2012-09-04T13:24:59Z) として表します。

最後に、UTC の日付を特定のタイム ゾーンで表現したい場合は、書式設定の前に次を使用します。

sdf.setTimeZone(TimeZone.getDefault()); //Choose the TimeZone you need
于 2012-09-04T13:26:53.177 に答える