4 回答
TA貢獻1906條經(jīng)驗 獲得超3個贊
博士
使用java.time包中的ZoneId&ZonedDateTime類。
ZonedDateTime.now() // Implicitly applies the JVM’s current default time zone.
最好明確指定您想要/預期的時區(qū)。
ZonedDateTime.now( ZoneId.of( "Africa/Tunis" ) )
java.time
現(xiàn)代方法使用java.time類,這些類在幾年前取代了可怕的遺留類,例如Timestamp、Calendar、Date、TimeZone和SimpleDateFormat。
以、或等格式指定適當?shù)臅r區(qū)名稱。永遠不要使用 2-4 個字母的縮寫,例如或因為它們不是真正的時區(qū),不是標準化的,甚至不是唯一的(?。?。Continent/RegionAmerica/MontrealAfrica/CasablancaPacific/AucklandESTIST
ZoneId z = ZoneId.of( "America/Montreal" ) ;
通過特定地區(qū)(上述時區(qū))的人們使用的掛鐘時間捕捉當前時刻。
ZonedDateTime zdt = ZonedDateTime.now( z ) ;
TA貢獻1872條經(jīng)驗 獲得超4個贊
您可以使用此方法獲取帶有時區(qū)的時間戳:
public static long getTimestampWithGMT() {
long timestamp = System.currentTimeMillis() / 1000;
int offset = (TimeZone.getDefault().getRawOffset() + TimeZone.getDefault().getDSTSavings()) / 1000;
return timestamp + offset;
}
TA貢獻2041條經(jīng)驗 獲得超4個贊
您可以使用 Calendar.getInstance().getTimeInMillis()?它默認為設(shè)備時區(qū),或者如果您想更改時區(qū),您可以執(zhí)行以下操作
Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
calendar.getTimeInMillis();
TA貢獻1866條經(jīng)驗 獲得超5個贊
您可以使用 Calendar 類來獲取當前時間戳。然后您可以格式化此時間戳以顯示日期、日、月、年、時間等。
Calendar c = Calendar.getInstance();
添加回答
舉報
