SimpleDateFormat是Java中最常用的日期格式化工具之一。本文将从以下多个方面详细阐述SimpleDateFormat的使用方法:
一、格式化日期
SimpleDateFormat可以将日期格式化为指定的字符串格式。
    Date date = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
    String dateString = sdf.format(date);
    System.out.println(dateString);
上述代码将输出当前日期的字符串形式,格式为“年-月-日”
二、解析字符串为日期
SimpleDateFormat不仅可以将日期格式化为字符串,还可以将字符串解析为日期对象。
    String dateString = "2021-08-05";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date date = sdf.parse(dateString);
    System.out.println(date);
上述代码将输出字符串”2021-08-05″对应的日期对象。
三、设置时区
SimpleDateFormat可以设置时区,以便在不同的时区显示和解析日期。
    String dateString = "2021-08-05";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    sdf.setTimeZone(TimeZone.getTimeZone("GMT+8"));
    Date date = sdf.parse(dateString);
    System.out.println(date);
上述代码将输出GMT+8时区中字符串”2021-08-05″对应的日期对象。
四、处理系统默认时区
如果不显式指定时区,SimpleDateFormat将使用系统默认时区。
    String dateString = "2021-08-05";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date date = sdf.parse(dateString);
    System.out.println(date);
上述代码将输出字符串”2021-08-05″对应的日期对象,使用系统默认时区。
五、处理线程安全问题
SimpleDateFormat是非线程安全的,因此在多线程环境下使用需要注意线程安全问题。
    String dateString = "2021-08-05";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date date = null;
    synchronized(sdf){
        date = sdf.parse(dateString);
    }
    System.out.println(date);
上述代码在解析日期时使用了同步块,保证了线程安全。
六、自定义格式
SimpleDateFormat还支持自定义日期格式,可以按照自己的需求对日期进行格式化。
    Date date = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    String dateString = sdf.format(date);
    System.out.println(dateString);
上述代码将输出当前日期的字符串形式,格式为”年-月-日 时:分:秒”。
七、常用日期格式化字符
SimpleDateFormat支持的日期格式化字符如下:
| 字符 | 含义 | 
| y | 年份 | 
| M | 月份 | 
| d | 日期 | 
| H | 24小时制的小时 | 
| h | 12小时制的小时 | 
| m | 分钟 | 
| s | 秒 | 
| S | 毫秒 | 
使用这些字符可以根据需要自定义日期格式。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/284912.html
微信扫一扫 
支付宝扫一扫