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;  //默认为中日期

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

日期样式

示例

FULL

2019年7月7日 星期日

LONG

2019年7月7日

MEDIUM

2019-7-7

SHORT

19-7-7

DEFAULT

2019-7-7

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

时间日期样式:

时间样式

示例

FULL

下午06时21分51秒 CST

LONG

下午06时23分08秒

MEDIUM

18:23:35

SHORT

下午6:23

DEFAULT

18:23:35

一个简单示例:

  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

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

目录
相关文章
|
4月前
|
安全 Java
java系列知识之~SimpleDateFormat日期格式化
这篇文章介绍了Java中`SimpleDateFormat`类的使用,包括如何创建实例、格式化日期对象为字符串、解析字符串为日期对象,并提供了常见日期模式和使用示例,同时指出了`SimpleDateFormat`不是线程安全及其它一些注意事项。
|
7月前
|
人工智能 IDE Java
CodeFuse代码优化实战:Java日期格式化时如何正确表示年份?
Java日期格式化时这里的坑你知道吗?一起来看正确用法!使用 CodeFuse 代码优化功能,可以帮你完美避坑,快来试试吧~
78 0
|
安全 Java BI
【JavaSE专栏43】Java常用类SimpleDateFormat解析,轻松解决日期格式化问题
【JavaSE专栏43】Java常用类SimpleDateFormat解析,轻松解决日期格式化问题
197 0
|
Java
Java8常用日期格式化&字符串日期相互转换
Java8常用日期格式化&字符串日期相互转换
359 0
Java 日期格式化工具类
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.
1598 0
|
Java
震惊!java中日期格式化的大坑!
震惊!java中日期格式化的大坑!
194 1
|
前端开发 Java
Java SimpleDateFormat进行日期格式化
本文目录 1. 为啥要用SimpleDateFormat 2. 日期格式化显示 3. 将字符串转换为对应日期
202 0
Java SimpleDateFormat进行日期格式化
下一篇
DataWorks