Java日期和时间格式器总结

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路Java日期和时间格式器总结,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

DateFormat

它是一个抽象类,提供了几个类方法用于获取DateFormat对象。

getDateInstance 返回一个日期格式器
getTimeInstance 返回一个时间格式器
getDateTimeInstance 返回一个日期、时间格式器

public static void main(String[] args) {

        Date date = new Date();
        DateFormat shortDateFormat = DateFormat.getDateInstance(DateFormat.SHORT);
        System.out.println("SHORT格式:" + shortDateFormat.format(date));

        DateFormat mediumDateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM);
        System.out.println("MEDIUM格式:" + mediumDateFormat.format(date));

        DateFormat longDateFormat = DateFormat.getDateInstance(DateFormat.LONG);
        System.out.println("LONG格式:" + longDateFormat.format(date));

        DateFormat shortTimeFormat = DateFormat.getTimeInstance(DateFormat.SHORT);
        System.out.println("SHORT格式:" + shortTimeFormat.format(date));

        DateFormat mediumTimeFormat = DateFormat.getTimeInstance(DateFormat.MEDIUM);
        System.out.println("MEDIUM格式:" + mediumTimeFormat.format(date));

        DateFormat longTimeFormat = DateFormat.getTimeInstance(DateFormat.LONG);
        System.out.println("LONG格式:" + longTimeFormat.format(date));

        DateFormat dateTimeFormat = DateFormat.getDateTimeInstance();
        System.out.println("DateTime格式:" + dateTimeFormat.format(date));


    }

输出:

SHORT格式:22-1-2
MEDIUM格式:2022-1-2
LONG格式:2022年1月2日
SHORT格式:上午8:25
MEDIUM格式:8:25:10
LONG格式:上午08时25分10秒
DateTime格式:2022-1-2 8:25:10

它有2个重要的抽象方法:
format:将日期转为String
parse:将String转为日期

它们的实现方法是在SimpleDateFormat类里。

SimpleDateFormat

是DateFormat的子类。可以非常灵活地格式化Date,也可以用于解析各种格式的日期字符串。

注意, 创建SimpleDateFormat对象时指定的pattern参数,pattern是一个使用日期字段占位符的日期模版。
具体有哪些占位符,可以看下该类的API,上面写的非常清楚:

特别要注意,同一个占位符,大小写的区别。例如,y 和 Y
y: year-of-era, 公元年
Y: week year,基于周来算年,(只要本周跨年,那么这周就算入下一年,即返回下一年)

public class SimpleDateFormatTest {
    public static void main(String[] args) {

        Calendar instance = Calendar.getInstance();
        instance.set(2019, 11, 31);
        Date date = instance.getTime();

        System.out.println(date);

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        System.out.println(simpleDateFormat.format(date));

        // 注意 y 和 Y的区别
        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("YYYY-MM-dd");
        System.out.println(simpleDateFormat1.format(date));

    }
}

输出:

Tue Dec 31 08:47:47 CST 2019
2019-12-31
2020-12-31

DateTimeFormatter

从1.8新增。
获取DateTimeFormatter对象,有如下三种方式

  1. 直接使用静态常量创建DateTimeFormatter格式器
  2. 使用代表不同风格的枚举只FormatStyle来创建DateTimeFormatter格式器
  3. 根据模式字符串来创建DateTimeFormatter格式器。类似于SimpleDateFormat

注意,它的parse和format方法,都是和TemporalAccessor接口有关。
和我的上一篇博客里介绍的Java8 新增的日期、时间类有关

Java日期和时间类总结

java中将string转为date的方法有哪些

String转Date常见三种方式:

  1. SimpleDateFormat
  2. org.apache.commons.lang3.time.DateUtils
  3. DateTimeFormatter(Java 8)
方式 描述
SimpleDateFormat 线程不安全、文本匹配灵活
DateUtils 工具类、支持日期运算
DateTimeFormatter 线程安全、配合LocalDateTime支持链式编程、方便比较运算
方式 用法
SimpleDateFormat 调用 parse方法
DateUtils parseDate方法
DateTimeFormatter 调用Java8日期类,自己的parse方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155646.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!