3

这是我的代码:

new java.text.SimpleDateFormat("hh hours, mm minutes and ss seconds.").format(new java.util.Date(milliseconds));`

我得到这个错误:

java.lang.IllegalArgumentException: Illegal pattern character 'o'
at java.text.SimpleDateFormat.compile(Unknown Source)
at java.text.SimpleDateFormat.initialize(Unknown Source)

我究竟做错了什么?

4

3 回答 3

3

javadoc状态_

可以使用单引号 (') 引用文本以避免解释。 "''" 表示单引号。不解释所有其他字符;它们只是在格式化期间被复制到输出字符串中,或​​者在解析期间与输入字符串匹配

因此'',围绕您不想解释的 String 的任何部分,例如

new java.text.SimpleDateFormat("hh 'hours', mm 'minutes and' ss 'seconds.'")
于 2013-11-05T00:06:18.310 回答
1

这应该有效:

String val = new java.text.SimpleDateFormat(
                 "hh 'hours', mm 'minutes and', ss 'seconds.'").
                 format(new java.util.Date(100000));

System.out.println(val);

文档日期时间和模式:

日期和时间格式由日期和时间模式字符串指定。在日期和时间模式字符串中,从 'A' 到 'Z' 和从 'a' 到 'z' 的不带引号的字母被解释为代表日期或时间字符串的组成部分的模式字母。可以使用单引号 (') 引用文本以避免解释。

于 2013-11-05T00:09:00.090 回答
1

格式字符串不正确。查看 doc 并以您想要的格式设置格式字符串。Java 文档

在您的情况下,以下行将起作用。

    new java.text.SimpleDateFormat("hh 'hours', mm 'minutes and' ss 'seconds.'")

使用单引号以避免误解。

于 2013-11-05T00:04:27.557 回答