从时间戳到DateFormat“Wed Jul 17 05:33:07 UTC 2013”

时间:2013-07-17 09:14:29

标签: java datetime timestamp

在java中我试图将时间戳转换为指定格式的日期,我只能这样实现

 DateFormat format = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy");
    Date date = format.parse("022310141505");
    System.out.println(date);

如何以日期格式"Wed Jul 17 05:33:07 UTC 2013"添加'UTC'?

它抛出错误

java.text.ParseException: Unparseable date: "022310141505"
    at java.text.DateFormat.parse(DateFormat.java:337)

3 个答案:

答案 0 :(得分:2)

试试这个,

    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy ");
    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
    Date date = new Date();
    System.out.println(sdf.format(date));

另外尝试以下内容

    DateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy ");
    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
    DateFormat format = new SimpleDateFormat("MMddyyHHmmss");
    Date date = format.parse("022310141505");
    System.out.println(sdf.format(date));

答案 1 :(得分:1)

目前尚不清楚,但在您的代码中,您正在尝试“解析”日期,这意味着您正在尝试从字符串表示形式返回到Date对象。我想你想要做的是“格式化”日期,即从Date对象到字符串表示。

首先,您必须将时间戳转换为日期

Date d = new Date(22310141505)
DateFormat formatter = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy");
System.out.println(formatter.format(d));

关于您尝试解析日期的方式的评论。您实际上是在尝试解析一般字符串(恰好看起来像一个时间戳),但它与您构造DateFormat的模式完全不匹配。

答案 2 :(得分:0)

如果上面的数字是时间戳,只需先将其变为日期。

long time = 022310141505L;
Timestamp ts = new Timestamp(time);
Date date = ts.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy");
System.out.println(sdf.format(date));