我使用 Facebook查询语言(FQL)来检索用户日期。我的FQL如下。
SELECT post_id , message
FROM stream
WHERE source_id = me()
AND actor_id = me()
AND created_time > 1221596000
我觉得 created_time 只需几秒钟。
我正在使用Java。有谁能说我如何将系统当前日期和时间转换为Java中的 created_time 秒?
答案 0 :(得分:4)
System.currentTimeMillis()
是以毫秒为单位的纪元。所以,给出一秒是一千毫秒。你可以通过划分1000
轻松转换它。或者我错过了什么?
答案 1 :(得分:0)
将此System.currentTimeInMillis()
除以1000。
答案 2 :(得分:0)
Instant.now()
.getEpochSecond()
1519944626
现代方法使用 java.time 类。
Instant
Instant
类代表UTC中时间轴上的一个时刻,分辨率为nanoseconds(小数部分最多九(9)位)。
Instant instant = Instant.now() ; // Capture current moment in UTC.
您可以在UTC,1970-01-01T00:00Z中确定1970年第一时刻的纪元参考的整秒数。注意数据丢失:您忽略了可能存在于Instant
对象值中的任何小数秒。
long secondsSinceEpoch = instant.getEpochSecond() ; // Ignores any fractional second in your `Instant`.
你可以转向另一个方向,将这样一个从epoch开始的时间解析为Instant
个对象。
Instant instant = Instant.ofEpochSecond( yourCountFromEpochGoesHere ) ;
java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.Date
,Calendar
和& SimpleDateFormat
现在位于Joda-Time的maintenance mode项目建议迁移到java.time类。
要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310。
您可以直接与数据库交换 java.time 对象。使用符合JDBC driver或更高版本的JDBC 4.2。不需要字符串,不需要java.sql.*
类。
从哪里获取java.time类?
ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如Interval
,YearWeek
,YearQuarter
和more。