4 回答

TA貢獻1906條經驗 獲得超3個贊
博士
使用java.time包中的ZoneId
&ZonedDateTime
類。
ZonedDateTime.now() // Implicitly applies the JVM’s current default time zone.
最好明確指定您想要/預期的時區。
ZonedDateTime.now( ZoneId.of( "Africa/Tunis" ) )
java.time
現代方法使用java.time類,這些類在幾年前取代了可怕的遺留類,例如Timestamp
、Calendar
、Date
、TimeZone
和SimpleDateFormat
。
以、或等格式指定適當的時區名稱。永遠不要使用 2-4 個字母的縮寫,例如或因為它們不是真正的時區,不是標準化的,甚至不是唯一的(?。?。Continent/Region
America/Montreal
Africa/Casablanca
Pacific/Auckland
EST
IST
ZoneId z = ZoneId.of( "America/Montreal" ) ;
通過特定地區(上述時區)的人們使用的掛鐘時間捕捉當前時刻。
ZonedDateTime zdt = ZonedDateTime.now( z ) ;

TA貢獻1872條經驗 獲得超4個贊
您可以使用此方法獲取帶有時區的時間戳:
public static long getTimestampWithGMT() {
long timestamp = System.currentTimeMillis() / 1000;
int offset = (TimeZone.getDefault().getRawOffset() + TimeZone.getDefault().getDSTSavings()) / 1000;
return timestamp + offset;
}

TA貢獻2041條經驗 獲得超4個贊
您可以使用 Calendar.getInstance().getTimeInMillis()?它默認為設備時區,或者如果您想更改時區,您可以執行以下操作
Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
calendar.getTimeInMillis();

TA貢獻1866條經驗 獲得超5個贊
您可以使用 Calendar 類來獲取當前時間戳。然后您可以格式化此時間戳以顯示日期、日、月、年、時間等。
Calendar c = Calendar.getInstance();
添加回答
舉報