在使用System.currentTimeMillis()
獲取當前時間戳時,其返回的時間戳是以UTC時間(世界協調時間)計算的。如果需要將其轉換為特定時區的時間,可以通過以下步驟解決:
TimeZone timeZone = TimeZone.getDefault();
TimeZone targetTimeZone = TimeZone.getTimeZone("Asia/Shanghai"); // 例如,設置為東亞時區
int offset = targetTimeZone.getOffset(System.currentTimeMillis()) - timeZone.getOffset(System.currentTimeMillis());
long currentTimeMillis = System.currentTimeMillis() + offset;
這樣就可以將System.currentTimeMillis()
獲取的時間戳轉換為指定時區的時間。需要注意的是,這種方法只能獲取當前時間的時間戳,并不能將歷史時間或其他時間轉換為特定時區的時間。如果需要處理歷史時間或其他時間,建議使用java.time
包中的ZonedDateTime
類進行時區轉換。