为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Java 中使用 TimeZone 获取当前时间戳

如何在 Java 中使用 TimeZone 获取当前时间戳

RISEBY 2022-07-14 10:34:58
我想在Android中timeStamp考虑TimeZoneJava,我尝试了很多方法,但仍然找不到解决方案。
查看完整描述

4 回答

?
一只名叫tom的猫

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类,这些类在几年前取代了可怕的遗留类,例如TimestampCalendarDateTimeZoneSimpleDateFormat

以、或等格式指定适当的时区名称。永远不要使用 2-4 个字母的缩写,例如或因为它们不是真正的时区,不是标准化的,甚至不是唯一的(!)。Continent/RegionAmerica/MontrealAfrica/CasablancaPacific/AucklandESTIST

ZoneId z = ZoneId.of( "America/Montreal" ) ;

通过特定地区(上述时区)的人们使用的挂钟时间捕捉当前时刻。

ZonedDateTime zdt = ZonedDateTime.now( z ) ;



查看完整回答
反对 回复 2022-07-14
?
守着一只汪

TA贡献1872条经验 获得超3个赞

您可以使用此方法获取带有时区的时间戳:


public static long getTimestampWithGMT() {

    long timestamp = System.currentTimeMillis() / 1000;

    int offset = (TimeZone.getDefault().getRawOffset() + TimeZone.getDefault().getDSTSavings()) / 1000;


    return timestamp + offset;

}


查看完整回答
反对 回复 2022-07-14
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

您可以使用 Calendar.getInstance().getTimeInMillis()?它默认为设备时区,或者如果您想更改时区,您可以执行以下操作


Calendar calendar = Calendar.getInstance();

calendar.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));

calendar.getTimeInMillis();


查看完整回答
反对 回复 2022-07-14
?
心有法竹

TA贡献1866条经验 获得超5个赞

您可以使用 Calendar 类来获取当前时间戳。然后您可以格式化此时间戳以显示日期、日、月、年、时间等。

Calendar c = Calendar.getInstance();


查看完整回答
反对 回复 2022-07-14
  • 4 回答
  • 0 关注
  • 442 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信