【问题标题】:Using Alphabetic Characters in SimpleDateFormat Pattern String在 SimpleDateFormat 模式字符串中使用字母字符
【发布时间】:2011-01-25 21:15:34
【问题描述】:

是否可以在 SimpleDateFormat 模式字符串中包含字母字符?

我正在尝试创建一个格式字符串,其中在时间之前包含字母“T”:

2003-11-15T09:30:47-05:00.

我目前使用yyyy-MM-ddhh:mm:ssZ 作为模式字符串。

如果我将其更改为 yyyy-MM-ddThh:mm:ssZ,它将引发异常,因为 'A' 到 'Z' 和 'a' 到 'z' 被保留。

有没有不涉及使用两个 DateFormat 的解决方案?

【问题讨论】:

    标签: java datetime formatting simpledateformat


    【解决方案1】:

    用单引号将T 括起来应该可以:

    yyyy-MM-dd'T'hh:mm:ssZ
    

    引用the documentation(强调我的):

    日期和时间格式由日期和时间模式字符串指定。在日期和时间模式字符串中,从'A''Z' 和从'a''z' 的不带引号的字母被解释为代表日期或时间字符串组件的模式字母。 可以使用单引号 (') 对文本进行引用以避免解释。 "''" 表示单引号。不解释所有其他字符;它们只是在格式化期间被复制到输出字符串中,或​​者在解析期间与输入字符串匹配。

    您的具体用例甚至被包括在内作为示例:

    Date and Time Pattern            Result
    -------------------------------------------------------------
    "yyyy-MM-dd'T'HH:mm:ss.SSSZ"     2001-07-04T12:08:56.235-0700  
    

    【讨论】:

    猜你喜欢
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多