自定义日期和时间字符串,以毫秒为单位

时间:2011-06-24 09:38:00

标签: java datetime datetime-format simpledateformat milliseconds

我有时间以毫秒为单位。 1308700800000;我需要将其转换为Jun 9'11 at 02:15 PM

我尝试使用

SimpleDateFormat format = new SimpleDateFormat("MMM D'\''YY");

但我得到一个例外:

Caused by: java.lang.IllegalArgumentException: Unterminated quote

任何帮助都将受到高度赞赏。

3 个答案:

答案 0 :(得分:13)

从异常消息中可以清楚地看出问题出在你的格式字符串上,特别是在单引号部分。

查看documentation,我们可以看到:

  

可以使用单引号(')引用文本以避免解释。 “''”代表单引号。

因此,我相信您的格式(对于该日期部分,根据您现有的示例)可以像

一样简单
new SimpleDateFormat("MMM d''yy")

不需要涉及反斜杠。

答案 1 :(得分:3)

尝试:

import java.util.*;
import java.text.*;

class D {
    public static void main( String ... args )  {
        System.out.println( 
            new SimpleDateFormat("MMM dd''yy")
            .format( new Date( 1308700800000L  ))
        );
    }
}

打印:

Jun 21'11

答案 2 :(得分:2)

Andrzej是对的,但是上限D和Y不适合你。阅读文档,但是 应该工作:

SimpleDateFormat format = new SimpleDateFormat("MMM d''yy 'at' HH:mm:ss z")