重複の可能性:
タイムゾーンの変換
Javaコードを使用して、特定の時間とタイムゾーンを他のタイムゾーンに変換する必要があります。
例えば :
28 Sept 2:00 PM IST
DST (夏時間) も考慮して、カナダのタイムゾーンに変換する必要があります。
誰かが私を助けることができますか?
クラスgetTimeZone()
とsetTimeZone()
一緒に試してみてくださいCalendar
TimeZone oztz = TimeZone.getTimeZone("Canada/Atlantic");
Calendar datetime = Calendar.getInstance( oztz );
すべてのタイムゾーンについては、このリンクを参照してください。
Calendarクラスには、変換を行うためのメソッドが組み込まれています。
setTimeZoneを使用して目的のタイムゾーンを設定できます。
DateクラスのgetTimeZoneOffsetも参照してください。
JodaTimeとそのサポートをさまざまなタイムゾーンで使用できます。
つまり、文字列ISO形式または特定の既知の形式(のように見える)があることがわかっている場合は、次のようにすることができます。
DateTimeFormatter fmt = ISODateTimeFormat.dateTime().withZone("Asia/Kolkata");
DateTime newDate = fmt.parseDateTime([your input date]);
// You can manipulate your date here...
String newString = fmt.withZone("Canada/Atlantic").print();
これは、DSTを含むすべてのタイムゾーンの問題を内部的に処理します。
簡単な方法は、Datetime と Timezone を Calender と getTime に設定することです。以下は、タイムゾーンとユーザー固有の時間を設定するサンプル コードです。
Date date =new Date(2012,9,28,2,00,00); //Set time to Date
Calendar calendar = new GregorianCalendar(TimeZone.getTimeZone("Canada/Atlantic"));
calendar.setTime(date);
System.out.println("Timezone :: " + calendar.getTimeZone());
System.out.println("Time :: " + calendar.getTime());
出力:
Timezone :: sun.util.calendar.ZoneInfo[id="Canada/Atlantic",offset=-14400000,dstSavings=3600000,useDaylight=true,transitions=228,lastRule=java.util.SimpleTimeZone[id=Canada/Atlantic,offset=-14400000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=3,startDay=1,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]]
Time :: Mon Oct 28 02:00:00 GMT 3912
TimeZone useDaylight(true/false)、dstSaving(カナダの場合は 1 時間) からすべての情報を取得します。TimeZone の機能の詳細については、以下のリンクを参照してください 。 -セービングタイムとタイムゾーン/
DayLightSavingTime 情報を取得するためのリンクは次のとおりです: http://timeanddate.com/worldclock/clockchange.html?n=1187&year=2012
おそらくあなたはこのようなものを探しています: タイムゾーン間の時間の変換