0

次の操作を行います:

デバイスのタイムゾーンをGMT+0400に設定します(コードからではありません)

新しい日付を作成する

そして、印刷時間(SimpleDateFormat)-ミリ秒単位

取得11-1919:16:40.920:I / System.out(30070):テスト時間:1353330825273時間:19.11

デバイスでtimeZoneをGMT+0600に変更し、ミリ秒でDateを作成すると1353330825273

日付myDate=new Date(1353330825273L);

しかし、時間をもう一度印刷すると、11-19 19:17:00.920:I / System.out(30070):TEST TIME:1353330825273 TIME:21.11になりました。

時間フォーマット文字列は次のとおりです:k:mm

なんで?自分の時間を変更するtimeZoneを無効にする方法は?

4

3 に答える 3

5

タイムゾーンではなくフォーマットと関係がありますが、タイムゾーンを無効にする場合は、次のようにします。

SimpleDateFormat sdf = new SimpleDateFormat(format);
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
return sdf.format(date);

これにより、タイムゾーンがGMT/UTCに設定されます

于 2012-11-19T12:39:23.527 に答える
1

詳細については、 SimpleDateFormatのjavadocのサンプルセクションを参照してください。

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss a");

上記は、12時間形式で出力します。以下は、さまざまな形式の詳細なリストです。

ここに画像の説明を入力してください

于 2012-11-19T12:44:42.487 に答える
0

タイムゾーンではなく、タイムフォーマットに問題があると思います。K午前/午後で時間を表示し、午前a/午後マーカーを表示するために使用します。

SimpleDateFormat sdf = new SimpleDateFormat("KK:mm:ss a");
于 2012-11-19T12:41:52.703 に答える