我有时间以毫秒为单位。 1308700800000
;我需要将其转换为Jun 9'11 at 02:15 PM
。
我尝试使用
SimpleDateFormat format = new SimpleDateFormat("MMM D'\''YY");
但我得到一个例外:
Caused by: java.lang.IllegalArgumentException: Unterminated quote
任何帮助都将受到高度赞赏。
答案 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")