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

Fah*_*kar 7 java datetime datetime-format milliseconds simpledateformat

我有时间以毫秒为单位.1308700800000; 我需要把它转换成类似的东西 Jun 9'11 at 02:15 PM.

我试过用

SimpleDateFormat format = new SimpleDateFormat("MMM D'\''YY");
Run Code Online (Sandbox Code Playgroud)

但我得到一个例外:

Caused by: java.lang.IllegalArgumentException: Unterminated quote
Run Code Online (Sandbox Code Playgroud)

任何帮助将受到高度赞赏.

And*_*yle 13

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

查看文档,我们可以看到:

可以使用单引号(')引用文本以避免解释."''"代表单引号.

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

new SimpleDateFormat("MMM d''yy")
Run Code Online (Sandbox Code Playgroud)

不应该涉及反斜杠.

  • 根据Grooveek的建议,Caps D和Y不起作用,这就是SimpleDateFormat格式=新的SimpleDateFormat("MMM d''yy'at'hh:mm aaa"); (2认同)

Osc*_*Ryz 5

尝试:

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  ))
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

印刷:

Jun 21'11
Run Code Online (Sandbox Code Playgroud)