我想使用Java代碼獲取不同時區的本地時間。根據傳遞給該函數的時區,我需要該時區的當地時間。如何實現這一目標?如何獲得不同時區的本地時間?
19
A
回答
11
java.util.TimeZone tz = java.util.TimeZone.getTimeZone("GMT+1");
java.util.Calendar c = java.util.Calendar.getInstance(tz);
System.out.println(c.get(java.util.Calendar.HOUR_OF_DAY)+":"+c.get(java.util.Calendar.MINUTE)+":"+c.get(java.util.Calendar.SECOND));
12
我會鼓勵你檢查出約達時間,另一種(但很受歡迎),以標準的Java日期和時間API:
http://joda-time.sourceforge.net/index.html
使用約達時間,我想這是你什麼:
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
public class TimeZoneDemo {
public static void main(String[] args) {
DateTime now = new DateTime(System.currentTimeMillis(), DateTimeZone.forID("UTC"));
System.out.println("Current time is: " + now);
}
}
你只需要知道在該時間段,如UTC標準的ID。
4
我寫了下面的程序來獲得時間所有可用的時區,看看是否可以幫助...
String[] zoneIds = TimeZone.getAvailableIDs();
for (int i = 0; i < zoneIds.length; i++) {
TimeZone tz = TimeZone.getTimeZone(zoneIds[i]);
System.out.print(tz.getID() + " " + tz.getDisplayName());
Calendar calTZ = new GregorianCalendar(tz);
calTZ.setTimeInMillis(new Date().getTime());
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, calTZ.get(Calendar.YEAR));
cal.set(Calendar.MONTH, calTZ.get(Calendar.MONTH));
cal.set(Calendar.DAY_OF_MONTH, calTZ.get(Calendar.DAY_OF_MONTH));
cal.set(Calendar.HOUR_OF_DAY, calTZ.get(Calendar.HOUR_OF_DAY));
cal.set(Calendar.MINUTE, calTZ.get(Calendar.MINUTE));
cal.set(Calendar.SECOND, calTZ.get(Calendar.SECOND));
cal.set(Calendar.MILLISECOND, calTZ.get(Calendar.MILLISECOND));
System.out.println(" "+cal.getTime());
2
檢查。希望它會有所幫助。
TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
Calendar cal = Calendar.getInstance();
int LocalOffSethrs = (int) ((cal.getTimeZone().getRawOffset()) *(2.77777778 /10000000));
int ChinaOffSethrs = (int) ((tz.getRawOffset()) *(2.77777778 /10000000));
TimeZone tz1 = TimeZone.getTimeZone("US/Central");
String ss =cal.getTimeZone().getDisplayName();
System.out.println("Local Time Zone : " + ss);
System.out.println("China Time : " + tz.getRawOffset());
System.out.println("Local Offset Time from GMT: " + LocalOffSethrs);
System.out.println("China Offset Time from GMT: " + ChinaOffSethrs);
cal.add(Calendar.MILLISECOND,-(cal.getTimeZone().getRawOffset()));
//cal.add(Calendar.HOUR,- LocalOffSethrs);
cal.add(Calendar.MILLISECOND, tz.getRawOffset());
Date dt = new Date(cal.getTimeInMillis());
System.out.println("After adjusting offset Acctual China Time :" + dt);
+4
請學習java命名約定並堅持下去 – kleopatra 2012-03-20 13:49:14
1
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
SimpleDateFormat dateFormat = new SimpleDateFormat();
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Seoul"));
GregorianCalendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 0);
System.out.println(dateFormat.format(cal.getTime()));
6
的Java 1.8提供了一些新的類在包java.time
:
package learning.java8;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import org.junit.Test;
public class JavaTimeLT {
@Test
public void zonedDataTimeExample() {
final ZoneId zoneId = ZoneId.of("Europe/Zurich");
final ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(Instant.now(), zoneId);
System.out.println(zonedDateTime.format(DateTimeFormatter.ISO_ZONED_DATE_TIME));
}
}
0
在Java 8中,您可以使用ZonedDateTime.now(ZoneId zone)
方法:
ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("Asia/Tokyo"));
LocalTime localTime = zonedDateTime.toLocalTime();
System.out.println(localTime);
相關問題
- 1. 如何獲得時間/日期字符串從本地時區
- 2. C++:如何獲得實時時間和本地時間?
- 3. 得到不同時區的時間
- 4. 如何獲得不同行的時間
- 5. JAVA:獲取不同時區的時間
- 6. 如何在Silverlight中的其他時區獲取本地時間
- 7. javascript - 將本地時間轉換爲不同的時區
- 8. Powershell - 將本地時間轉換爲不同的時區
- 9. 如何在不同的時區獲取日期和時間?
- 10. Python - 試圖獲得不同的時區
- 11. 如何通過不同的時區移動本地日期時間值
- 12. MySQL的:獲取本地時間的特定時間區
- 13. 我如何獲得本地時區我的Messenger軟件用戶?
- 14. 獲取不同時區的時間選擇時間選擇器
- 15. 執行shell腳本時獲得不同的日期時間
- 16. 無論當地時區何時獲得赫爾辛基當地時間
- 17. 時刻得到的時間在不同的時區
- 18. PHP - 如何獲得當地時間?
- 19. 獲得本地時間和提升
- 20. 如何獲得時區
- 21. iphone如何獲得時區?
- 22. 如何獲得給定時區的「午夜」的UTC時間?
- 23. 如何獲得當地時區日期時間在Django的日期比較
- 24. 獲得兩個不同的時間
- 25. 如何獲得與時區無關的時間
- 26. 如何獲得的時間轉換爲所需時區
- 27. Android如何獲得android中兩個時區之間的時差?
- 28. 如何獲得基於最新的時間時區
- 29. 如何獲得帶時區縮寫的時間戳值
- 30. 如何在PostgreSQL中獲得所需時區的不同日期?
感謝您的答覆。我正在寫一個小班,我不想爲這個小班輸入joda包。你可以建議任何其他方式?再次感謝 – Raj 2012-02-06 07:30:45