3

次のコードを使用して文字列を日付に変換しましたが、変換中にデバイスのタイムゾーンを適用しています。
これは必要ありませんが、その文字列から同じ日付/時刻が必要です

String = "2009-07-31 07:59:17.427"
Date = 2009-07-31 07:59:17.427

Date formatter = new Date(HttpDateParser.parse("2009-07-31 07:59:17.427"));
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String strCustomDateTime = dateFormat.format(formatter);
4

2 に答える 2

6

解析後に取得する日付へのデフォルトのタイムゾーン オフセットを考慮することができます。

public static String StringToDate(String dateToParse) {

    Date formatter = new Date(HttpDateParser.parse(dateToParse));
    SimpleDateFormat dateFormat = new SimpleDateFormat(
            "yyyy-MM-dd HH:mm:ss.SSS");
    int offset = TimeZone.getDefault().getRawOffset();
    formatter.setTime(formatter.getTime() + offset);
    String strCustomDateTime = dateFormat.format(formatter);
    return strCustomDateTime;
}
于 2009-07-31T10:26:47.177 に答える
1

正確には何が問題なのですか?「2009-07-31 07:59:17.427」をある時点に変換しようとしていますが、これはタイムゾーンなしで一意の時点を指定していません。したがって、タイムゾーンが必要であり、ライブラリはプラットフォームの現在のタイムゾーンを選択する必要があります。

別のタイムゾーンを指定したい場合は、DateFormat.setTimeZone() を呼び出します。

format.setTimeZone(TimeZone.getTimeZone("your time zone"));
于 2009-07-31T08:51:04.937 に答える