如何使用Java 處理日曆時區
問題:
問題:您有一個時間戳您有一個時間戳記的應用程式可能源自任何時區。但是,資料必須傳送到假定資料始終為 GMT 的 WebService。您需要在使用者不知情的情況下將使用者的輸入時間從本地時區轉換為 GMT。
答案:import java.util.Calendar; import java.util.TimeZone; public class ConvertTimeZone { public static void main(String[] args) { // Example input time (EST) Calendar input = Calendar.getInstance(TimeZone.getTimeZone("EST")); input.set(2008, Calendar.MAY, 1, 18, 12, 0); // Create a Calendar in GMT Calendar gmt = convertToGmt(input); // Output the converted time (GMT) System.out.println(gmt.getTime()); // 2008-05-01 11:12:00 GMT } public static Calendar convertToGmt(Calendar cal) { Date date = cal.getTime(); TimeZone tz = cal.getTimeZone(); long msFromEpochGmt = date.getTime(); // Convert to milliseconds since epoch in GMT int offsetFromUTC = tz.getOffset(msFromEpochGmt); // Create a new Calendar in GMT and adjust for the offset Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); gmtCal.setTime(date); gmtCal.add(Calendar.MILLISECOND, offsetFromUTC); return gmtCal; } }Java 的時區處理可能會令人困惑。雖然時間戳通常以 GMT 格式存儲,但 Calendar 類別預設使用系統當前的時區。若要解決此挑戰,請考慮以下事項:
以上是如何在 Java 中將任何時區的時間戳記轉換為 GMT?的詳細內容。更多資訊請關注PHP中文網其他相關文章!