如何在Java 中的時間戳計算中處理時區
在Java 應用程式中使用時間戳時,考慮時區非常重要確保準確的計算和數據處理。在此特定場景中,使用者可以輸入其本地時區 (EST) 的時間戳,但服務期望它採用 GMT。
要將時間戳記從使用者的本地時區轉換為 GMT,我們需要考慮時間偏移的差異。以下是如何使用Java 的Calendar 類別克服此挑戰的範例:
public static Calendar convertToGmt(Calendar cal) { Date date = cal.getTime(); TimeZone tz = cal.getTimeZone(); log.debug("input calendar has date [" + date + "]"); // Convert to milliseconds since epoch in GMT long msFromEpochGmt = date.getTime(); // Get offset from UTC in milliseconds int offsetFromUTC = tz.getOffset(msFromEpochGmt); log.debug("offset is " + offsetFromUTC); // Create GMT calendar and adjust date based on offset Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); gmtCal.setTime(date); gmtCal.add(Calendar.MILLISECOND, offsetFromUTC); log.debug("Created GMT cal with date [" + gmtCal.getTime() + "]"); return gmtCal; }
透過利用此方法,您可以將時間戳轉換為GMT,確保它符合服務的期望,無論使用者的位置或時間如何區域設定。
以上是如何在 Java 中將時間戳記從本機時區轉換為 GMT?的詳細內容。更多資訊請關注PHP中文網其他相關文章!