在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)
试试这个,
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));
这还不清楚,但在您的代码中,您试图"解析"日期,这意味着您试图从字符串表示返回到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
的模式完全不匹配。
如果上面的数字是时间戳,只需先将其转换为日期即可。
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));