java时间转换遇到的问题
1 |
java时间格式化遇到的一个问题
有一个时间,格式如下
1 | 04-JAN-19 02.20.01.207000 AM 这个格式的字符串转换为Date |
猛一看看不出来年月日,时分秒,但是数据很多,经过分析应该是
1 | 日-月-年 时.分.秒.微秒 上午 |
第一个问题是,微妙怎么办,java时间格式化里面的微妙是用大学的S表示,而且java里面只认3位,这个是六位。但是数据非常漂亮,通过对数据的分析所有的微妙后三位都是0,那就把这三个0当做看不见啦,只取前三位就可以当一个微秒来用,用SSS转换
第二个问题,字符串里面的月份是因为的,如果直接用HH会报错,从网上找到一个参数 Locale.ENGLISH,配置英文格式,然后就可以啦。
第二个问题,就是AM和PM的问题,发现几个指定的字符串可以解决这个问题。把a标签和 K标签一起用,就可以把原来的时间进行正确解析。
名称 | 字段 | 说明 |
---|---|---|
年 | yyyy或YYYY | 小于等于4个都是一样的,大于的会在前面补0 |
年中的月份 | MMM | 例如:Jan,英文月 |
年中的月份 | MM | 例如01,数字月,2个M,1-9月前补0 |
年中的周数 | w | 略 |
月中的周数 | W | 略 |
年中的天数 | D | Number 189 |
月份中的天数 | d | Number 10 |
数字星期 | F | 周四显示4 |
英语星期 | E | 周四显示Thu |
Am/pm 标记 | a | PM AM |
一天中的小时数(0-23) | H | 0 |
一天中的小时数(1-24) | k | 24 |
am/pm 中的小时数(0-11) | K | 0 |
am/pm 中的小时数(1-12) | h | 12 |
1 | public class DataFormat { |
标准的时间格式应该是
1 | yyyy-MM-dd HH:mm:ss |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载无需注明来自 超级大土豆!