将日期转换为毫秒到另一种日期格式

时间:2014-08-21 02:59:33

标签: java calendar simpledateformat

我有一个日期作为字符串传递,其日期为毫秒格式,见下文:

String dateMilli = "2014-08-21 09:11:44.187";

如何使用以下格式将此格式转换为日期格式:

yyyy-MM-dd'T'HH:mm:ss
or 
2014-08-21T10:39:41

到目前为止我有这个但是没有用

Date tempDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").parse(dateMilli);
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");  
dateFormat.format(tempDate);
System.out.println(" date format: "+ dateFormat.toString());

Output:
date format: java.text.SimpleDateFormat@6b2ed43a

2 个答案:

答案 0 :(得分:3)

您正在打印出DateFormat对象 - 请勿这样做!您需要使用该DateFormat对象将String解析为Date或将日期格式化为String,然后打印返回的String。请查看DateFormatSimpleDateFormat的API,了解解析和格式方法。

您需要两个SimpleDateFormat对象:

  • 用于将第一种格式的字符串转换为日期的字符串。
    • 您可以通过调用格式parse(String s)方法来完成。
  • 另一个SimpleDateFormat将用于将Date格式化为第二种类型的String:
    • 您可以通过调用格式format(Date d)方法来执行此操作。
    • 然后只需打印出这个返回的字符串。
  • 你永远不应该尝试打印DateFormat对象,因为这没有意义。

答案 1 :(得分:2)

您打印DateFormat对象的结果时,需要将格式应用于Date并打印出来......

String formatted = dateFormat.format(tempDate);
System.out.println(" date format: "+ formatted);