目前,Java應用程序部署在多個國家/地區的站點位置。 某些操作的本地日期和時間將傳遞到應用程序 而不帶時區。在java中將多個位置的本地dateTime轉換爲UTC
必須將每個本地時間戳轉換爲UTC。 如何獲取localTimeZone(取決於應用程序的運行位置),選中此項並將所有日期轉換爲UTC。
目前,Java應用程序部署在多個國家/地區的站點位置。 某些操作的本地日期和時間將傳遞到應用程序 而不帶時區。在java中將多個位置的本地dateTime轉換爲UTC
必須將每個本地時間戳轉換爲UTC。 如何獲取localTimeZone(取決於應用程序的運行位置),選中此項並將所有日期轉換爲UTC。
您可以從code.openhub.net查看此代碼。
請,做一些同樣的,
TimeZone currentTimeZone = TimeZone.getDefault();
DateFormat formatter = DateFormat.getDateTimeInstance(
DateFormat.DEFAULT,
DateFormat.DEFAULT,
Locale.getDefault());
formatter.setTimeZone(currentTimeZone);
Date myDate = new Date();
System.out.println(formatter.format(myDate)); // you Local time
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println(formatter.format(myDate)); // UTC time
我找到here這個答案。你可以試試這個,簡單又容易,並且可以將任何時區轉換爲任何區域
SimpleDateFormat formatter = new SimpleDateFormat("dd-M-yyyy hh:mm:ss a");
String dateInString = "22-01-2015 10:15:55 AM";
Date date = formatter.parse(dateInString);
TimeZone tz = TimeZone.getDefault();
// From TimeZone Asia/Singapore
System.out.println("TimeZone : " + tz.getID() + " - " + tz.getDisplayName());
System.out.println("TimeZone : " + tz);
System.out.println("Date : " + formatter.format(date));
// To TimeZone America/New_York
SimpleDateFormat sdfAmerica = new SimpleDateFormat("dd-M-yyyy hh:mm:ss a");
TimeZone tzInAmerica = TimeZone.getTimeZone("America/New_York");
sdfAmerica.setTimeZone(tzInAmerica);
String sDateInAmerica = sdfAmerica.format(date); // Convert to String first
Date dateInAmerica = formatter.parse(sDateInAmerica);
System.out.println("\nTimeZone : " + tzInAmerica.getID() +
" - " + tzInAmerica.getDisplayName());
System.out.println("TimeZone : " + tzInAmerica);
System.out.println("Date (String) : " + sDateInAmerica);
System.out.println("Date (Object) : " + formatter.format(dateInAmerica));
這個問題主題是將本地時間轉換爲utc和返回。可能是你需要的。 https://stackoverflow.com/questions/19375357/java-convert-gmt-utc-to-local-time-doesnt-work-as-expected – Akunosh
謝謝Akunosh..the鏈接幫助 – Rehan