当前位置: 首页 > 知识库问答 >
问题:

Java 8–使用时区[duplicate]从LocalDateTime创建即时

安高翰
2023-03-14

我有一个日期存储在DB字符串格式ddMMyyyy和hh: mm和时区。我想根据这些信息创建一个即时,但我不知道如何做到这一点。

像这样的东西

LocalDateTime dateTime = LocalDateTime.of(2017, Month.JUNE, 1, 13, 39);
Instant instant = dateTime.toInstant(TimeZone.getTimeZone("ECT"));

共有3个答案

锺离声
2023-03-14

我认为以下代码应该可以工作:

LocalDateTime time = LocalDateTime.of(2017, Month.JUNE, 15, 13, 39);
ZonedDateTime.of(time, TimeZone.getTimeZone("ZONE").toZoneId()).toInstant();

你只需要用你需要的时区替换“区域”。

蒋承教
2023-03-14

忘记旧的时区类。使用ZoneId,因为它是线程安全的,您可以使用最后一个静态字段来存储区域。

LocalDateTime dateTime = LocalDateTime.of(2017, Month.JUNE, 1, 13, 39);
ZonedDateTime.of(dateTime, ZoneId.of("ECT")).toInstant();
慕容宇
2023-03-14

您可以首先使用该时区创建一个ZonedDateTime,然后调用toInstant

LocalDateTime dateTime = LocalDateTime.of(2017, Month.JUNE, 15, 13, 39);
Instant instant = dateTime.atZone(ZoneId.of("Europe/Paris")).toInstant();
System.out.println(instant); // 2017-06-15T11:39:00Z

我还改用了全时区名称(根据巴兹尔的建议),因为它不那么模糊。

 类似资料:
  • 问题内容: 我有这个简单的代码: 然后我将得到以下异常: 如何解决这个问题? 问题答案: 是没有时区的日期时间。您以格式指定了时区偏移格式符号,但是没有此类信息。这就是为什么发生错误。 如果您需要时区信息,请使用。

  • 我有这个简单的代码: 然后我将得到以下异常: 如何解决这个问题?

  • 如果我要创建一个数组,并用值初始化它,我会这样做 我想对ArrayList做同样的事情,并有类似的东西 上面这行代码不行,我理解。我试图传达我希望实现的目标。有没有办法在Java做到这一点,而不必做像 或者

  • 问题内容: 我希望创建一个系统,注册后将在我的网站上为用户帐户区域创建一个子域。 例如johndoe.website.com 我认为这可能与.htaccess文件有关,并且可能重定向到网站上的其他位置吗?我真的不知道 但是,任何使我动手的信息将不胜感激。 创建注册区域不是问题-我已经做了很多次了。我只是不确定从子域开始。 问题答案: 快速淘汰 您需要在DNS服务器* .website.com上创建

  • 我需要你的帮助。假设我的JSP中有form:form,表单内部是form:input with date..,如下所示: 在控制器中,我有方法: PersonalTask看起来像: 问题是...如何从JSP传递日期时间并与@ModelAtcm(“个人任务”)个人任务任务绑定??

  • 我刚刚根据新的(ish)Java8时间包将许多日期转换为LocalDateTime。到目前为止,我一直很喜欢这种转换,直到我开始尝试序列化和反序列化。 如何配置Jackson以支持他们?: LocalDateTime --serialize-- 这里有大量关于转换为格式化字符串的资料,但我似乎找不到utc时间戳的现成解决方案。