日期格式化
- 预定义格式
- 日期格式化样式
- 自定义日期格式化
预定义格式
java提供了预定义的日期格式,预定义的日期格式可以满足绝大多数的场景需要。 格式化日期需要两步: 1、通过DateFormat.getDateInstance() 获取一个DateFormat对象。 2、调用DateFormat对象的format方法返回一个String类型的日期。 话不多说看代码:
代码语言:javascript复制DateFormat dateInstance = DateFormat.getDateInstance();
System.out.println(dateInstance.format(new Date()));
输出结果:
代码语言:javascript复制2019-7-7
日期格式化样式
在通过DateFormat.getDateInstance()创建实例时使用了默认的日期格式化样式,DateFormat还提供了其他格式化样式。
代码语言:javascript复制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 |
一个简单示例:
代码语言:javascript复制DateFormat dateInstance = DateFormat.getDateInstance(DateFormat.LONG);
DateFormat timeInstance = DateFormat.getTimeInstance(DateFormat.LONG);
System.out.println(dateInstance.format(new Date()) " " timeInstance.format(new Date()));
输出结果:
代码语言:javascript复制2019年7月7日 下午06时28分40秒
自定义日期格式化
如果预定义的日期格式化不好用的话可以使用自定义日期格式化。使用自定义日期格式化需要创建SimpleDateFormat实例。 先了解一下自定义日期格式化语法:
表中符号可以单个使用也可以自由组合,除了这些字母以外的符号都算做修饰符,不会进行转换。
示例:
代码语言:javascript复制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()));
输出:
代码语言:javascript复制现在是 公元 2019年-07月-07日 下午 20时:34分:28秒:028
今天是今年的第188天
今天星期日
今天是今年的第28周
今天Mon
这些东西虽然使用起来不难,但是能记住的话还是能省些时间的。