Aboodnet:
なぜ出力は同じではありませんされていますか?
Date currentTrueSystemDate = Calendar.getInstance().getTime();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Kuwait"));
String newConvertedDate = sdf.format(currentTrueSystemDate.getTime());
System.out.println(newConvertedDate);
try {
Date newConvertedDate2 = sdf.parse(newConvertedDate);
System.out.println(newConvertedDate2);
} catch (ParseException e) {
System.out.println(e.getLocalizedMessage());
}
出力:
I/System.out: 27-Sep-2018 09:16:52
I/System.out: Thu Sep 27 07:16:52 GMT+01:00 2018
理由私が使用したいので、私は今までに、文字列から「newConvertedDate」を変換しています.before
し、.after
それに機能を。日付に文字列を解析すると、時間を変更する理由を私は理解していませんか?
varunkr:
日付に文字列を解析すると、時間を変更する理由を私は理解していませんか?
format()
この場合、クウェートには、指定されたタイムゾーンの文字列表現に(何のタイムゾーンを持たない、それは1970-01-01 00:00:00 UTCからの経過ミリ秒数である)日付を変換します。
初めてだから、クウェートのタイムゾーン内の文字列を取得し、それを印刷します。これは、時間がないゾーン情報と単なる文字列です。しかし、時間は、クウェートの時間です。
その後、自衛隊のインスタンスが同じであるとして日付がクウェートの時間であると仮定された日付使ってパース()に文字列を変換します。今、この文字列は日付に変換してのSystem.out.printlnは、ローカルタイムゾーンで、それを印刷しています。
ノートへの事は、両方の時間が同じだけ異なるタイムゾーンであるということです。
あなたは同じ時間が必要な場合は、てSimpleDateFormatの新しいインスタンスを作成して、日付文字列を渡す必要があります。だから、これはローカルタイムゾーンの日付であると仮定して、再度同じ値を与える印刷された日付を返すために解析するだろうと。しかし、この日はちょうど時間が同じで、前回と同じではないことに注意してください。
この好きですか
Date currentTrueSystemDate = Calendar.getInstance().getTime();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Kuwait"));
String newConvertedDate = sdf.format(currentTrueSystemDate.getTime());
System.out.println(newConvertedDate);
try {
sdf = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss");
Date newConvertedDate2 = sdf.parse(newConvertedDate);
System.out.println(newConvertedDate2);
} catch (ParseException e) {
System.out.println(e.getLocalizedMessage());
}