簡體   English   中英

如何將unix時間戳轉換為基於特定時區的時間?

[英]How to convert unix timestamp into time based on a specific timezone?

我有一個unix時間戳-1449688800,該時間戳專用於洛杉磯/加利福尼亞州的時區。

如何將這個時間戳轉換為JAVA上面提到的時區

Java毫秒是從1970年1月1日起。Unix時間是從1970年1月1日起,以UTC為單位的秒(因此,如果它是unix時間戳,則來自UTC,否則不是Unix時間戳(根據需要刪除或添加小時)。 )

洛杉磯所在的時區TimeZone.getTimeZone("America/Los_Angeles")

那導致我們

Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("America/Los_Angeles"));
cal.setTimeInMillis(unixTime*1000);
cal.add(Calendar.HOUR, amount of non corrisponding to unix timestamp from UTC);

要將特定時間從原始時區轉換為目標時區:

public static long convertToTimeZone(long initialTime, TimeZone origin, TimeZone target)
{
    return initialTime + target.getRawOffset() - origin.getOffset(initialTime);
}

您的意思是結果是java.Date對象,其天使/加利福尼亞時區嗎?

讓我們嘗試一下,將您的本地時間戳轉換為全局時間戳,然后創建java.Date。

要轉換為全局,您可能需要計算時區偏移量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM