首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从时间戳到Java的日期

从时间戳到Java的日期
EN

Stack Overflow用户
提问于 2014-03-22 08:35:16
回答 2查看 352关注 0票数 2

我在用Java创建新日期时遇到了问题。我从webservice收到一个时间戳(例如1397692800)。从在线转换器中可以看到,该转换器等于2014年4月17日。当我试图用Java创建一个带有时间戳的新日期时

代码语言:javascript
运行
复制
Date date = new Date (1397692800);

控制台对我说,那相当于1970年CET的星期六1月17日下午14:52。我的密码怎么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-22 08:36:51

Date(long)构造函数接受自Unix时代以来的毫秒数。我强烈怀疑,自Unix时代以来,您已经得到了秒数--因此,将该值乘以1000 L即可。

代码语言:javascript
运行
复制
Date date = new Date(timestamp * 1000L);

确保您使用的是1000 L而不是1000,否则如果timestamp是一个int,它将以32位而不是64位执行算术,而且您很可能会得到错误的结果。

票数 6
EN

Stack Overflow用户

发布于 2018-09-04 04:45:22

java.time

现代方法使用java.time类。

代码语言:javascript
运行
复制
Instant instant = Instant.ofEpochSecond( 1_397_692_800L ) ;

instant.toString():2014-04-17T00:00:00Z

关于java.time

http://docs.oracle.com/javase/10/docs/api/java/time/package-summary.html框架内置到Java8和更高版本中。这些类取代了麻烦的旧遗赠日期时间类,如java.util.DateCalendarSimpleDateFormat

http://www.joda.org/joda-time/项目现在在维护模式中,建议迁移到java.time类。

要了解更多信息,请参见http://docs.oracle.com/javase/tutorial/datetime/TOC.html。并搜索堆栈溢出以获得许多示例和解释。规范是JSR 310

您可以直接与数据库交换java.time对象。使用与JDBC 4.2或更高版本兼容的JDBC 4.2。不需要字符串,也不需要java.sql.*类。

在哪里获得java.time类?

  • Java 8Java 9Java 10Java 11和更高版本--捆绑实现的标准Java的一部分。
    • Java 9添加了一些次要的特性和修复。

  • Java 6Java 7
    • 大多数java.time功能都是在http://www.threeten.org/threetenbp/中移植到Java6&7中的。

  • 安卓
    • 较晚版本的Android实现的java.time类。
    • 对于早期的Android (<26),https://github.com/JakeWharton/ThreeTenABP项目采用了http://www.threeten.org/threetenbp/ (上面提到的)。见http://stackoverflow.com/q/38922754/642706

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22575310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档