Java将系统的当前日期时间转换为时期参考的秒数

时间:2012-03-01 05:43:52

标签: java facebook

我使用 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 秒?

3 个答案:

答案 0 :(得分:4)

System.currentTimeMillis()是以毫秒为单位的纪元。所以,给出一秒是一千毫秒。你可以通过划分1000轻松转换它。或者我错过了什么?

答案 1 :(得分:0)

将此System.currentTimeInMillis()除以1000。

答案 2 :(得分:0)

TL;博士

Instant.now() 
       .getEpochSecond()
  

1519944626

java.time

现代方法使用 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.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.DateCalendar和& SimpleDateFormat

现在位于Joda-Timemaintenance 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的试验场。您可以在此处找到一些有用的课程,例如IntervalYearWeekYearQuartermore