我必須給定的時間和時區轉換使用Java代碼的一些其他時區。
例如:
我必須轉換28 Sept 2:00 PM IST
在加拿大時區與DST考慮(夏令時間)爲好。
有人可以幫助我嗎?
我必須給定的時間和時區轉換使用Java代碼的一些其他時區。
例如:
我必須轉換28 Sept 2:00 PM IST
在加拿大時區與DST考慮(夏令時間)爲好。
有人可以幫助我嗎?
嘗試getTimeZone()
和setTimeZone()
隨着Calendar
類
TimeZone oztz = TimeZone.getTimeZone("Canada/Atlantic");
Calendar datetime = Calendar.getInstance(oztz);
請參閱此鏈接的所有時區:
也許你正在尋找的東西是這樣的: Converting Times Between Time Zones
您可以使用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。
簡單的方法是將日期時間和時區設置爲日曆和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
你會得到所有的信息從時區useDaylight(真/假),dstSaving(1小時加拿大) 時區的更多功能,請參考以下鏈接: http://biese.wordpress.com/2006/10/23/java-daylight-saving-time-and-time-zone/
以下鏈接獲得DayLightSavingTime信息: http://timeanddate.com/worldclock/clockchange.html?n=1187&year=2012
選中此鏈接(http://code.google.com/p/h2database/source/browse/trunk/h2/src/main/org/h2/util/DateTimeUtils.java) – devsathish