我有时间以毫秒为例。 1308700800000
;我需要将它转换成类似Jun 9'11 at 02:15 PM
的东西。毫秒自定义日期和时间字符串
我尝试使用
SimpleDateFormat format = new SimpleDateFormat("MMM D'\''YY");
,但我得到一个异常:
Caused by: java.lang.IllegalArgumentException: Unterminated quote
任何帮助将高度赞赏。
我有时间以毫秒为例。 1308700800000
;我需要将它转换成类似Jun 9'11 at 02:15 PM
的东西。毫秒自定义日期和时间字符串
我尝试使用
SimpleDateFormat format = new SimpleDateFormat("MMM D'\''YY");
,但我得到一个异常:
Caused by: java.lang.IllegalArgumentException: Unterminated quote
任何帮助将高度赞赏。
从异常消息中可以明显地看出问题将出现在格式字符串中,特别是单引号部分。
望着documentation,我们可以看到:
文本可以使用单引号('),以避免解释被引用。 “''”代表单引号。
因此,我相信您的格式(该日期的部分,按照现有的例子),可以很简单的
new SimpleDateFormat("MMM d''yy")
应该没有必要涉足反斜杠。
'java.lang.IllegalArgumentException:非法模式字符'Y'' – oliholz
对不起,我主要关注撇号的语法问题,并通过对比的方式将它们插入到现有格式中。为了使这个复制和粘贴的答案,我已经更新了一天和一年的参数的情况。 –
根据Grooveek的建议,D和Y的上限不起作用,这样做的伎俩是SimpleDateFormat format = new SimpleDateFormat('hm:mm aaa“上的”MMM d''yy'); –
尝试:
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
安杰是正确的,但帽d和Y不会为你工作。阅读文档,但 应该工作:
SimpleDateFormat format = new SimpleDateFormat("MMM d''yy 'at' HH:mm:ss z")
SimpleDateFormat format = new SimpleDateFormat(“'hh:mm aaa”处的'MMM d''yy');做了诀窍.. –
请添加一些代码和完全异常跟踪 – fmucar
http://joda-time.sourceforge.net/办理日期和时间,会让你的生活变得更轻松java – NimChimpsky