如何将时间戳转换为适当的日期格式?

9

我有一个时间戳 TimeStamp,需要将其转换为匹配此格式的Data类型对象 - "2016-11-16T18:42:33.049Z"。我该怎么办?


1
什么是“TimeStamp”?它是java.sql.Timestamp还是其他什么东西? - Mark Rotteveel
2个回答

17
Date d = new Date((long)timestamp*1000);

将创建一个Date实例。稍后显示它是另一回事。

我认为这就是你想要的:

DateFormat f = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.mmm'Z'");
System.out.println(f.format(date));

测试:

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
    public static void main(String[] args) throws Exception {

        Date d = new Date((long)1481723817*1000);
        DateFormat f = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.mmm'Z'");
        System.out.println(f.format(d));
    }
}

>>2016-12-14T14:56:57.056Z

我需要日期完全匹配模式,因为我将其用于查询DynamoDB... 你知道如何实现吗? - neckobik
你应该在DynamoDB中保留时间戳。日期就是日期,不用担心显示格式。 - xenteros
@neckobik 试试上面的代码。看起来它有效。 - xenteros
实际上我需要它来对AWS DynamoDB中的二级索引进行查询条件。这就是为什么我需要与之前提到的完全相同的表示形式。Case query将把所有内容都作为字符串进行比较(Dynamo db中的日期属性是一个字符串值)。但无论如何,感谢您的回答。我现在会测试它。 - neckobik
我认为您打算使用以毫秒结束的格式"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'":https://docs.oracle.com/javase/9/docs/api/java/text/SimpleDateFormat.html - Kyr

3

这样转换。

String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date (epoch*1000));

您可以按照所需的方式使用数据对象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接