9

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

我尝试使用

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

但我得到一个例外:

Caused by: java.lang.IllegalArgumentException: Unterminated quote

任何帮助将不胜感激。

4

3 回答 3

16

从异常消息中可以清楚地看出,问题出在您的格式字符串上,尤其是在单引号部分附近。

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

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

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

new SimpleDateFormat("MMM d''yy")

不需要涉及反斜杠。

于 2011-06-24T09:43:02.730 回答
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  ))
        );
    }
}

印刷:

Jun 21'11
于 2011-06-24T09:46:47.070 回答
3

Andrzej 是对的,但 Caps D 和 Y 对你不起作用。阅读文档,但这应该有效:

SimpleDateFormat format = new SimpleDateFormat("MMM d''yy 'at' HH:mm:ss z")
于 2011-06-24T09:47:06.400 回答