JAVA 日期格式化

简介: JAVA 日期格式化

最近项目中需要用到SimpleDateFormat 格式化日期,但是因为对日期格式的不熟练多花了十分钟左右的时间在日期格式化上面,所以趁着周末外面下着大雨闲着无聊整理一下日期格式问题。

日期格式化学习

预定义格式

java提供了预定义的日期格式,预定义的日期格式可以满足绝大多数的场景需要。

格式化日期需要两步:

1、通过DateFormat.getDateInstance() 获取一个DateFormat对象。

2、调用DateFormat对象的format方法返回一个String类型的日期。

话不多说看代码:

DateFormat dateInstance = DateFormat.getDateInstance();
 System.out.println(dateInstance.format(new Date()));

输出结果:

2019-7-7

日期格式化样式

在通过DateFormat.getDateInstance()创建实例时使用了默认的日期格式化样式,DateFormat还提供了其他格式化样式。

    public static final int FULL = 0;          //全日期
    public static final int LONG = 1;         //长日期
    public static final int MEDIUM = 2;      //中日期
    public static final int SHORT = 3;      //短日期
    public static final int DEFAULT = MEDIUM;  //默认为中日期

各个日期样式如下(系统为中文环境):

image.png

DateFormat.getDateInstance()实例只能够获取年月日信息,如果想要获取时间信息要使用DateFormat.getTimeInstance() 实例,DateFormat.getTimeInstance()使用的常量参数和DateFormat.getDateInstance()相同。

时间日期样式:

image.png

一个简单示例:

  DateFormat dateInstance = DateFormat.getDateInstance(DateFormat.LONG);
  DateFormat timeInstance = DateFormat.getTimeInstance(DateFormat.LONG);
  System.out.println(dateInstance.format(new Date()) +" "+timeInstance.format(new Date()));

输出结果:

2019年7月7日 下午06时28分40秒

通过 DateFormat.getDateInstance() 和 DateFormat.getTimeInstance() 组合就可以对日期进行格式化了。


自定义日期格式化

如果预定义的日期格式化不好用的话可以使用自定义日期格式化。使用自定义日期格式化需要创建SimpleDateFormat实例。

先了解一下自定义日期格式化语法:

image.png

表中符号可以单个使用也可以自由组合,除了这些字母以外的符号都算做修饰符,不会进行转换。

示例:

SimpleDateFormat dateFormat = new SimpleDateFormat( "G yyyy年-MM月-dd日 a HH时:mm分:ss秒:sss");
System.out.println(dateFormat.format(new Date()));
SimpleDateFormat dateFormat = new SimpleDateFormat( "D");
System.out.println("今天是今年的第"+new SimpleDateFormat("D").format(new Date())+"天");
System.out.println("今天"+new SimpleDateFormat("E").format(new Date()));
System.out.println("今天是今年的第"+new SimpleDateFormat("w").format(new Date())+"周");
System.out.println("今天"+new SimpleDateFormat("E" , Locale.ENGLISH).format(new Date()));

输出:

现在是 公元 2019年-07月-07日 下午 20时:34分:28秒:028
今天是今年的第188天
今天星期日
今天是今年的第28周
今天Mon

这些东西虽然使用起来不难,但是能记住的话还是能省些时间的。

目录
相关文章
|
6月前
|
存储 Java C语言
Java的缓冲区与格式化输出技术详解
Java的缓冲区与格式化输出技术详解
58 2
|
12月前
|
XML Java API
Java实现XML格式化
Java实现XML格式化
301 0
|
Java
java语言的格式化解释和转换符
java语言的格式化解释和转换符
116 0
|
Java
DecimalFormat的使用讲解数字格式化和demo(java小数控制,金额返回相关处理)
DecimalFormat的使用讲解数字格式化和demo(java小数控制,金额返回相关处理)
315 0
|
6月前
|
Java
DecimalFormat(Java中的应用——十进制数字格式化)
DecimalFormat(Java中的应用——十进制数字格式化)
194 0
|
12月前
|
JSON 前端开发 Java
Java实现树的格式化打印以及返回前端json树
Java实现树的格式化打印以及返回前端json树
69 0
|
安全 Java API
jdk8获取当前时间|时间加减|java8时间格式化|时间处理工具|时间比较|线程安全的时间处理方法
jdk8获取当前时间|时间加减|java8时间格式化|时间处理工具|时间比较|线程安全的时间处理方法
|
存储 JSON Java
Java 编程问题:六、Java I/O 路径、文件、缓冲区、扫描和格式化4
Java 编程问题:六、Java I/O 路径、文件、缓冲区、扫描和格式化
85 0
|
人工智能 Java
Java 获取当前日期并且实现日期的格式化
Java 获取当前日期并且实现日期的格式化
|
SQL Oracle Java
Java中如何解析、格式化、生成SQL语句?
Java中如何解析、格式化、生成SQL语句?