我有当前的毫秒utc/unix时间,现在我想将其转换为特定时区的日期时间,例如EST utc-5(纽约)。
我使用以下方法获得当前的毫秒/ unix时间:
System.currentTimeMillis
现在我想把这个长值转换成一个特定的时区。
我如何使用 Joda time 做到这一点,因为我听说这是最好的库,但 API 对我来说似乎有点混乱。
我使用:System.currentTimeMillis
获取当前毫秒/unix时间
不要这样做。
Instant.now()
方法取代了那个过时的方法。此外,Instant
能够实现更精细的颗粒度,最高可达纳秒。目前,OpenJDK中的实现以微秒为单位捕获当前时刻,比其他方法的毫秒要精细得多。
Instant instant = Instant.now() ;
instant.toString(): 2019-07-27T02:15:34.727766Z
现在我想把这个长值转换成一个特定的时区。
将时区指定为 ZoneId
。应用到即时
以获取分区日期时间
。
ZoneId z = ZoneId.of( "America/New_York" ) ; // Or did you have another zone in mind, such as `America/Montreal` ?
ZonedDateTime zdt = instant.atZone( z );
或者,您可以跳过即时
。调用<code>ZonedDateTime。现在,同时传递ZoneId
。
ZonedDateTime zdt = ZonedDateTime.now( z ) ;
特定时区,例如EST UTC-5(纽约)。
EST 不是真正的时区。
以大陆/地区格式指定正确的时区名称,例如美洲/蒙特利尔
、非洲/卡萨布兰卡
或太平洋/奥克兰
。切勿使用 2-4 个字母的缩写,例如
EST
或 IST
,因为它们不是真正的时区,不是标准化的,甚至不是唯一的(!)。
我如何使用 Joda time 做到这一点,因为我听说这是最好的库,但 API 对我来说似乎有点混乱。
Joda-Time 项目现在由 Java 8 和更高版本(由 JSR 310 定义)中的 java.time 类继承。Android 26 及更高版本也有这些类。
您评论有关写入数据库的信息。如果数据库具有正确的日期时间类型,请使用它们而不是存储长整数。
从JDBC 4.2开始,我们可以交换java。时间对象。
我们在这里讨论的时刻应该存储在一个数据类型类似于SQL-standard type < code > TIMESTAMP WITH TIME ZONE (< code>WITH,而不是< code > WITH )的列中!).
奇怪的是,JDBC规范只需要支持offsetDateTime
而不是Instant
或ZonedDateTime
。所以,转换。
myPreparedStatement.setObject( … , zdt.toOffsetDateTime() ) ;
检索。
OffsetDateTime odt = myResultSet.getObject( … , OffsetDateTime.class ) ;
ZoneId z = ZoneId.of( "America/Montreal" ) ;
ZonedDateTime zdt = odt.atZoneSameInstant( z ) ; // Adjust to a time zone.
Instant instant = zdt.toInstant() ; // Adjust to UTC.
Offhtml" target="_blank">setDateTime
之间的区别是什么
您可以使用DateTime(long),后跟DateTime.withZone(DateTimeZone)。有点像
DateTime dt = new DateTime(millis).withZone(DateTimeZone.forID("Europe/Somewhere");
问题内容: 我正在寻找将UTC时间字符串转换为Unix时间戳的选项。 我拥有的字符串变量是,需要将其转换为unix时间戳,例如 任何想法如何做到这一点? 问题答案: 首先,unix时间戳没有时间,但以UTC为单位。 在包有功能解析与预计解析时的布局。布局是从参考时间开始构造的。因此,在您的情况下,布局应为。使用Parse之后,您将获得一个可以调用Unix来接收Unix时间戳的结构。
问题内容: 我有一个字符串类型就像一个计时:和是。 如何使用Java 8 datetime API将此时间信息转换为与UTC时间相对应的时间? 还需要考虑DST的东西。 问题答案: 您正在Java8 中寻找类-带有时区的完整日期时间和与UTC /格林威治标准时间的偏移量。就设计而言,此类应主要视为a 和a 的组合。的是一个至关重要的,但次要的,一条信息,用于确保所述类表示瞬间,特别是在夏令重叠。
编辑:对不起,也许我的问题不对。。。。 我正在尝试将UTC时间戳转换为Java(Kotlin)中的本地时间戳 f、 exm。 UTC时间18:00德国当地时间是20:00我需要UTC时间戳中的德国当地时间。。。。。 返回UTC时间:( 如何在特定时区将即时UTC转换为Pochmilli
问题内容: 将熊猫的DateTimeIndex转换为Unix时间(可迭代)的惯用方式是什么?这可能不是要走的路: 问题答案: 由于是引擎盖下,你可以做转换没有理解(要快得多)。
问题内容: 我有一个UTC时间(纪元Unix时间),其格式设置为时间戳,如下所示。 (人类可读的值:2017年5月31日09:57:00) 我需要将格式化为Unix时间的时间戳转换为GPS时间格式,如下所示。 (人类可读的值:2017年5月31日09:57:00) 我需要一个python程序(算法对我来说很好)将Unix时间格式的时间戳转换为GPS时间格式的时间戳。 有一个PHP程序可以这样做。我
由于对java时间的发展以及为什么会有成千上万的相关帖子感到十分困惑,我设法使用jodaTime存储了UTC时间: 因为我使用的是Hibernate(并且不愿意使用JodaTime的适配器来正确处理版本4),所以我只使用这个jodaTime方法将jdk时间转换为utc。这似乎产生了预期的结果,本地时间(当前伦敦格林尼治标准时间1)通过从本地时间减去1来转换为UTC。 目前为止,一切都好。然后,每当