Java小白入门200例60之SimpleDateFormat时间格式化详解

Posted 编程界明世隐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java小白入门200例60之SimpleDateFormat时间格式化详解相关的知识,希望对你有一定的参考价值。

作者简介

作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、javascript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!

引言

很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢?
其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大佬的路上一去不复返(切记要亲手练习哦)!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  59.用Calendar实现日历的打印
►下一篇  61.java中Date日期类型的大小比较

概述

SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类,它允许进行格式化(日期→文本)、解析(文本→日期)和规范化。

常用构造方法

构造方法描述
SimpleDateFormat()用默认的格式和默认的语言环境构造 SimpleDateFormat。
SimpleDateFormat(String pattern)用指定的格式和默认的语言环境构造 SimpleDateFormat。
SimpleDateFormat(String pattern,Locale locale)用指定的格式和指定的语言环境构造 SimpleDateFormat。

自定义格式中常用的字母及含义

字母含义示例
y年份。一般用 yy 表示两位年份,yyyy 表示 4 位年份 使用 yy 表示的年扮,如 11;使用 yyyy 表示的年份,如 2011
M月份。一般用 MM 表示月份,如果使用 MMM,则会根据语言环境显示不同语言的月份 使用 MM 表示的月份,如 05;使用 MMM 表示月份,在 Locale.CHINA语言环境下,如“十月”;在 Locale.US语言环境下,如 Oct
d月份中的天数。一般用 dd 表示天数 使用 dd 表示的天数,如 10
D年份中的天数。表示当天是当年的第几天, 用 D 表示 使用 D 表示的年份中的天数,如 295
E星期几。用 E 表示,会根据语言环境的不同, 显示不同语言的星期几 使用 E 表示星期几,在 Locale.CHINA 语言环境下,如“星期四”;在 Locale.US 语言环境下,如 Thu
H一天中的小时数(0~23)。一般用 HH 表示小时数 使用 HH 表示的小时数,如 18
h一天中的小时数(1~12)。一般使用 hh 表示小时数 使用 hh 表示的小时数,如 10 (注意 10 有可能是 10 点,也可能是 22 点)
m分钟数。一般使用 mm 表示分钟数 使用 mm 表示的分钟数,如 29
s秒数。一般使用 ss 表示秒数 使用 ss 表示的秒数,如 38
S毫秒数。一般使用 SSS 表示毫秒数 使用 SSS 表示的毫秒数,如 156

实例展示

实例1

格式化时间,输出年月日的几种方式

package demo.demo60;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Fomat1 {

	public static void main(String[] args) {
		   SimpleDateFormat f1=new SimpleDateFormat("yyyy/MM/dd");
		   SimpleDateFormat f2=new SimpleDateFormat("yyyyMMdd");
		   SimpleDateFormat f3=new SimpleDateFormat("yyyy-MM-dd");
		   SimpleDateFormat f4=new SimpleDateFormat("yyyy年MM月dd日");
		   
		   Date date = new Date();
		   System.out.println(f1.format(date));
		   System.out.println(f2.format(date));
		   System.out.println(f3.format(date));
		   System.out.println(f4.format(date));
	}

}

运行结果:

2021/09/13
20210913
2021-09-13
2021年09月13日

实例2

格式化时间,输出年月日\\时分秒的几种方式

package demo.demo60;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Fomat2 {

	public static void main(String[] args) {
		   SimpleDateFormat f1=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		   SimpleDateFormat f2=new SimpleDateFormat("yyyyMMddHHmmss");
		   SimpleDateFormat f3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		   SimpleDateFormat f4=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
		   
		   Date date = new Date();
		   System.out.println(f1.format(date));
		   System.out.println(f2.format(date));
		   System.out.println(f3.format(date));
		   System.out.println(f4.format(date));
	}

}

运行结果

2021/09/13 11:16:37
20210913111637
2021-09-13 11:16:37
2021年09月13日11时16分37秒

实例3

格式化后包含星期

package demo.demo60;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Fomat3 {

	public static void main(String[] args) {
		   SimpleDateFormat f1=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss E");
		   SimpleDateFormat f2=new SimpleDateFormat("yyyyMMddHHmmss E");
		   SimpleDateFormat f3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
		   SimpleDateFormat f4=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒 E");
		   
		   Date date = new Date();
		   System.out.println(f1.format(date));
		   System.out.println(f2.format(date));
		   System.out.println(f3.format(date));
		   System.out.println(f4.format(date));
	}

}

运行结果:

2021/09/13 11:17:59 星期一
20210913111759 星期一
2021-09-13 11:17:59 星期一
2021年09月13日11时17分59秒 星期一

实例4

将yyyy-MM-dd HH:mm:ss 格式的String转换成Date

package demo.demo60;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Fomat4 {

	public static void main(String[] args) {
		//Date指定格式:yyyy-MM-dd HH:mm:ss
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String string = "2021-09-13 11:00:10";
		//传入的格式必须符合simpleDateFormat对象的格式,即"yyyy-MM-dd HH:mm:ss" 否则会报错
		Date d=null;
		try {
			d = simpleDateFormat.parse(string);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		System.out.println(d);
	}

}

运行结果:

Mon Sep 13 11:00:10 CST 2021

实例5

将“yyyy年MM月dd日 HH时mm分ss秒” 格式的转换为Date

package demo.demo60;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Fomat5 {

	public static void main(String[] args) {
		//Date指定格式:yyyy年MM月dd日 HH时mm分ss秒
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
		String string = "2021年9月13日 11时20分20秒";
		//传入的格式必须符合simpleDateFormat对象的格式,即"yyyy年MM月dd日 HH时mm分ss秒" 否则会报错
		Date d=null;
		try {
			d = simpleDateFormat.parse(string);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		System.out.println(d);
	}

}

运行结果:

Mon Sep 13 11:20:20 CST 2021

小结

这节总结了“SimpleDateFormat时间格式化详解”,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。

评论区打卡一波让我知道你,明哥会持续关注你的学习进度哦!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  59.用Calendar实现日历的打印
►下一篇  61.java中Date日期类型的大小比较

热门专栏推荐

1.Java小游戏系列(俄罗斯方块、飞机大战、植物大战僵尸等)
2.JavaWeb项目实战(图书管理、在线考试、宿舍管理系统等)
3.JavaScript精彩实例(飞机大战、扫雷、贪吃蛇、验证码等)
4.Java小白入门200例
5.从零学Java、趣学Java、以王者荣耀角度学Java

以上是关于Java小白入门200例60之SimpleDateFormat时间格式化详解的主要内容,如果未能解决你的问题,请参考以下文章

Java小白入门200例95之Java匿名类

Java小白入门200例105之Java ArrayList类

Java小白入门200例107之Java LinkedList类

Java小白入门200例103之异常处理的规则

Java小白入门200例112之Java HashSet类

Java小白入门200例99之Java常见异常及处理