SimpleDateFormat中YYYYmmDDhhMMss大小写问题-获取不到正确时间以及常见的格式串

1、问题解决:

SimpleDateFormat sf = new SimpleDateFormat("YYYYmmDDhhMMss");
String transTime = "20"+ "INN15090588ZM_802310048993424".substring(3, 5) + "0906110059";
System.out.println("transTime"+transTime);
try {
//使用SimpleDateFormat的parse()方法生成Date
Date date = sf.parse(transTime);
System.out.println(date);
}catch (ParseException e) {
e.printStackTrace();

}

获取不到正确时间。

改为yyyyMMddHHmmSS秒数获取为00

改为yyyyMMddHHmmss则正确


2、

日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 A到 Z和 a 到 z 被解释为模式字母,如果想要用原有的字母的本意的话,

需要使用加上:双引号的字母来表示,如  'A'   'T'  等
如:yyyy-MM-DD  'T'  ======> 2019-12-19 T

常见的格式字母的含义:

字母          日期或时间元素 表示          示例          
G     Era 标志符 Text  AD
y Year 1996; 96
M   年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number   189
d 月份中的天数 Number 10 
F 月份中的星期 Number 2  
E 星期中的天数 Text Tuesday; Tue 
a Am/pm 标记 Text PM
一天中的小时数(0-23) Number   0  
k 一天中的小时数(1-24) Number   24
K am(中午)/pm(下午) 中的小时数(0-11) Number   0
am(中午)/pm(下午) 中的小时数(1-12) Number   12
m 小时中的分钟数 Number 30  
s 分钟中的秒数 Number    55  
S 毫秒数 Number   978 
原文地址:https://www.cnblogs.com/isme-zjh/p/12068269.html