本文共 1941 字,大约阅读时间需要 6 分钟。
SimpleDateFormat 一定要弄清楚 parse 与 format 不然总是遇到异常 就是使用不对的问题
parse()返回的是一个Date类型里面使用的String类型
format 返回的是一个String类型 里面使用的是Date类型
假如获取了系统时间
Date date = new Date();
这个date 定义的Date 类型的数据
可以使用format 刚才返回一个string类型的日期
如下
Date date = new Date(); Log.e("-----date", String.valueOf(date)); SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日"); Log.e("----s", s.format(date));
格式自己根据需要设置就行
假如现在直接定义一个String的时间 String time = "2019-8-8"; 想要的结果是时间后面带年月日以及星期
说下思路这个time 是String 类型的 肯定使用parse 解析 返回一个Date 类型 ,然后在使用format 转成指定的格式
假如直接使用如下的代码肯定走到error里面了
String time = "2019-8-8"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM日dd EE"); Date tt = null; try { tt = sdf.parse(time); Log.e("-----hxm", String.valueOf(tt)); } catch (ParseException e) { e.printStackTrace(); Log.e("----error", e.getMessage()); }
这种就是错误的写法 ,原因是格式不一样呢
正确的写法如下
String time = "2019-8-8"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date tt = null; try { tt = sdf.parse(time); Log.e("-----hxm", String.valueOf(tt)); } catch (ParseException e) { e.printStackTrace(); Log.e("----error", e.getMessage()); } SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM日dd EE"); String dd = sd.format(tt); Log.e("---dd", dd);
所以呢个人总结使用SimpleDateFormat 的使用一定要请求自己解析的是什么类型 然后在判断用parse 还是format
如果是Date 类型的直接format 转化即可,如果是String 类型 先使用parse 转成 Date 类型 这时候一定一定一定要注意格式
就是显示时间个格式与SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); (这里的格式就是时间为2019/8/8对应的为yyyy/MM/dd 时间为2019-8-8对应的格式为yyyy-MM-dd) 后面的这个格式要一样。
然后在使用format 转化成一个指定类型的String 类型数据。。。。
SimpleDateFormat函数语法:
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分 s 秒 S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
这些表示可以了解下就行,用的时候知道有这些属性。。。。。。。。。。。。。。
转载地址:https://huxiaomu.blog.csdn.net/article/details/100105801 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!