SimpleDateFormat 日期,时间格式转化

SimpleDateFormat  一定要弄清楚 parse 与 format 不然总是遇到异常 就是使用不对的问题

parse()返回的是一个Date类型里面使用的String类型

SimpleDateFormat 日期,时间格式转化_第1张图片

format 返回的是一个String类型 里面使用的是Date类型

SimpleDateFormat 日期,时间格式转化_第2张图片

 

假如获取了系统时间

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 时区

这些表示可以了解下就行,用的时候知道有这些属性。。。。。。。。。。。。。。

 

你可能感兴趣的:(SimpleDateFormat 日期,时间格式转化)