我有一個unix時間戳 - 1449688800,這個時間戳是特定於時區洛杉磯/加州。如何根據特定時區將unix時間戳轉換爲時間?
我怎麼能這個時間戳轉換爲是你的意思是結果與洛杉磯/加州時區java.Date對象JAVA
我有一個unix時間戳 - 1449688800,這個時間戳是特定於時區洛杉磯/加州。如何根據特定時區將unix時間戳轉換爲時間?
我怎麼能這個時間戳轉換爲是你的意思是結果與洛杉磯/加州時區java.Date對象JAVA
上面提到的時區?
讓我們嘗試一下,將您的本地時間戳轉換爲全局時間戳,然後創建java.Date。
要轉換爲全局,您可能需要計算時區偏移量。
Java毫秒自1970年1月1日起。Unix time是自1970年1月1日以來的秒(UTC)(因此如果它是來自UTC的unix時間戳,否則它不是Unix時間戳(刪除或添加小時根據需要))
洛杉磯的time zone是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);
}
這個數字已經是洛杉磯/卡利時區還是您需要轉換它?因爲如果是UTC,你可以從中減去8小時,並且很好。 –