我正在使用Yahoo weather API构建一些简单的应用程序。在JSON接收器中,pubDate
字段(根据文档)在RFC 882(看起来像"pubDate":1546992000
)中。有谁知道如何在Android中将此类日期转换为日期?
答案 0 :(得分:1)
答案 1 :(得分:1)
应该是这样的:
new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(new Date( [yourDateValue] * 1000L))
您可以在此处测试结果:https://www.unixtimeconverter.io/ [在此处插入发布日期]
答案 2 :(得分:0)
Instant.ofEpochSecond(
Long.parseLong( "1546992000" )
)
…表示UTC中2019年1月1日的第一时刻。
2019-01-09T00:00:00Z
现代方法使用了几年前取代了可怕的Date
/ Calendar
/ SimpleDateFormat
类的 java.time 类。
假设1546992000
代表自UTC 1970年第一时刻的纪元参考以来的整数秒,则解析为Instant
。
Instant instant = Instant.ofEpochSecond( 1_546_992_000L );
instant.toString():2019-01-09T00:00:00Z
要查看特定地区(时区)的人们所使用的挂钟时间,请调整为ZonedDateTime
实例。
ZoneId z = ZoneId.of( "Africa/Casablanca" ) ;
ZonedDateTime zdt = instant.atZone( z ) ;
ZonedDateTime.toString():2019-01-09T01:00 + 01:00 [非洲/卡萨布兰卡]
java.time框架已内置在Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.Date
,Calendar
和SimpleDateFormat
。
要了解更多信息,请参见Oracle Tutorial。并在Stack Overflow中搜索许多示例和说明。规格为JSR 310。
目前位于Joda-Time的maintenance mode项目建议迁移到java.time类。
您可以直接与数据库交换 java.time 对象。使用符合JDBC driver或更高版本的JDBC 4.2。不需要字符串,不需要java.sql.*
类。
在哪里获取java.time类?