Android中两种特殊日期格式对应的SimpleDateFormat表达式查询
Android SimpleDateFormat 模式匹配结果
以下模式均基于**英文Locale(推荐用Locale.US)**编写,因为格式中的月份、星期、AM/PM均为英文标识,不指定对应Locale会导致解析/格式化失败。
1. 匹配 January 01, 2021 at 3:37:59 PM UTC+5:30 格式
对应的SimpleDateFormat表达式:MMMM dd, yyyy 'at' h:mm:ss a zzzz
各模式符说明:
MMMM:全拼英文月份名(对应January、February等)dd:两位日期,不足两位自动补前导零yyyy:4位年份'at':固定文本,必须用单引号包裹避免被解析为模式符h:12小时制小时(取值1-12,不补前导零)mm:两位分钟ss:两位秒数a:AM/PM标识zzzz:长格式时区标识(对应UTC+5:30这类显示)
2. 匹配 Wed Sep 15 10:10:59 GMT+05:30 2021 格式
对应的SimpleDateFormat表达式:EEE MMM dd HH:mm:ss z yyyy
各模式符说明:
EEE:缩写英文星期名(对应Wed、Thu等)MMM:缩写英文月份名(对应Sep、Oct等)dd:两位日期HH:24小时制小时(取值0-23)mm:两位分钟ss:两位秒数z:短格式时区标识(对应GMT+05:30这类显示)yyyy:4位年份
补充说明
- SimpleDateFormat为线程不安全类,多线程场景下建议每次使用新建实例;若应用目标API等级≥26,更推荐使用
java.time包下的DateTimeFormatter替代,性能和安全性更优。
内容的提问来源于stack exchange,提问作者Suman Radhakrishnan
相关产品推荐
相关产品推荐

