【问题标题】:Convert Date with milliseconds to another date format将带毫秒的日期转换为另一种日期格式
【发布时间】:2014-08-21 02:59:32
【问题描述】:

我有一个作为字符串传递的日期,其日期格式为毫秒,如下所示:

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

【问题讨论】:

标签: java calendar simpledateformat


【解决方案1】:

您正在打印出 DateFormat 对象——不要那样做!您需要使用该 DateFormat 对象将字符串解析为日期或将日期格式化为字符串,然后打印返回的字符串。请查看DateFormatSimpleDateFormat 的API,了解解析和格式化方法。

您需要两个 SimpleDateFormat 对象:

  • 用于将第一种格式的字符串转换为日期。
    • 您可以调用格式的parse(String s) 方法。
  • 另一个 SimpleDateFormat 将用于将日期格式化为第二种类型的字符串:
    • 您可以通过调用格式的format(Date d) 方法来做到这一点。
    • 然后简单地打印出这个返回的字符串。
  • 您不应该尝试打印 DateFormat 对象本身,因为这没有任何意义。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢 MadProgrammer,我会试试这个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    相关资源
    最近更新 更多