日期格式处理

文章目录

  • 前言
  • 一、时间的长整数表示
  • 二、日期类
  • 三、java.util.Date、SimpleDateFormat、Local的主要用法
    • 1.java.util.Date主要用法
    • 小结
    • 2.SimpleDateFormat的主要用法
    • 3.Local主要作用
    • 4.定制日期输出格式
    • 小结
  • 四、日期字符串、日期、时间戳三者转换(重要!!!!!)
    • 1.日期字符串转换成日期对象
    • 注意
    • 2.将时间戳转换成字符串
    • 3.将字符串转换成时间戳
  • 总结

前言

时间是一个,我们生活中最常见也是最重要的东西,在不同的国家不同的地区时间的表现方式都不一样,当然当你获得一个时间,或则时间戳,你该怎么让这个时间符合中国人的审美观呢,今天我们就来说一下时间的各种处理方法。

一、时间的长整数表示

时间的长整数表示,是Java中最常见的,需要加工才能出现,我们喜欢的,能看懂的时间格式。而在Java中是这样表示的
代码如下(示例):

public class Test01 {
     

	public static void main(String[] args) {
     
		// 时间的长整数表示
		System.out.println(System.currentTimeMillis());

	}

代码如下(输出):

1611390612099

输出的1611390612099表示的是从1970-01-01 00:00:00:000开始到现在所经历的毫秒数,而在计算机中为了方便保存时以一个这样的时间戳来保存的,所以拿到这么个时间戳,如果不经过处理,别说普通的没接触过代码的人看不懂,就连我们搞编程的第一次见到都发蒙,所以我们就得对它进行一定的处理,让它为多数人接受。

二、日期类

作用
java.util.Date Java程序中通常用它表示日期
SimpleDateFormat 实现日期和字符串之间的转换
Local 表示特定的地理、政治、文化地区
Calendar(*)l 日期类,封装了年月日时分秒和时区
java.sql.Date 主要在数据库中操作日期,因为数据库中不直接支持 java.util.Date

由于我还没学到数据库,还有java.util.Date和Calendar(*)的使用方法基本相同,我们今天主要用的是前三个

三、java.util.Date、SimpleDateFormat、Local的主要用法

1.java.util.Date主要用法

代码如下(示例):

// 导包一定是import java.util.Date
import java.util.Date;

public class Test02 {
     

	public static void main(String[] args) {
     
		// 获取时间的Date对象
		Date date = new Date();
		// 获取当前时间距离1970-01-01    00:00:00:000的毫秒值表示形式
		// 最常用的应该是int类型的,但是int类型的表示范围不够了,所以用比int强的long
		long time = date.getTime();
		System.out.println(time);

代码如下(输出):

1611392755401

小结

java.util.Date主要是获取获取当前时间距离1970-01-01 00:00:00:000时间戳

2.SimpleDateFormat的主要用法

1.日期的默认格式国际标准表示
代码如下(示例):

import java.util.Date;

public class Test03 {
     

	public static void main(String[] args) {
     
		// 国际标准
		Date date = new Date();
		System.out.println(date);

	}

}

代码如下(输出):

Sat Jan 23 17:19:08 CST 2021

上面的输出结果作为一个中国人看着不太懂,作为一个英语欠佳的中国人看着更不懂,所以我们就得将这个东西格式化输出,让人一看就懂的东西。就得用SimpleDateFormat这个小帮手了。

3.Local主要作用

代码如下(示例):

import java.util.Locale;

public class Test01 {
     

	public static void main(String[] args) {
     
		// 获取此虚拟机实例当前默认语言环境值
		Locale locale = Locale.getDefault();
		System.out.println(locale);

	}

}

代码如下(输出):

zh_CN

输出zh_CN的意思是中国中文,其实就是给SimpleDateFormat提供辅助,让虚拟机能识别输出中文模式。

4.定制日期输出格式

代码如下(例子):

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

public class Test03 {
     

	public static void main(String[] args) {
     
		Date date = new Date();
		System.out.println("格式化前的日期为:"+date);
		// 定制日期格式为yyyy-MM-dd HH:mm:ss
		SimpleDateFormat simpleDateFormat01 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
		String time01 = simpleDateFormat01.format(date);
		System.out.println("格式化后的日期为:"+time01);
		// 定制日期格式为yyyy年MM月dd日 HH:mm:ss
		SimpleDateFormat simpleDateFormat02 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss", Locale.getDefault());
		String time02 = simpleDateFormat02.format(date);
		System.out.println("格式化后的日期为:"+time02);

代码如下(输出):

格式化前的日期为:Sat Jan 23 17:43:28 CST 2021
格式化后的日期为:2021-01-23 17:43:28
格式化后的日期为:2021012317:43:28

小结

说大白话,其实java.util.Date,Local都是为SimpleDateFormat服务的,SimpleDateFormat有还几个重载的函数,但是我选的是最常用的那个,此函数的需要两个实参就是java.util.Date,Local提供的。


四、日期字符串、日期、时间戳三者转换(重要!!!!!)

1.日期字符串转换成日期对象

代码如下(例子):

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

public class Test04 {
     

	public static void main(String[] args) throws ParseException {
     
		String string = "2021年01月23日 17:43:28";
		System.out.println("解析前的字符串为:"+string);
		SimpleDateFormat simpleDateFormat01 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss", Locale.getDefault());
		Date date = simpleDateFormat01.parse(string);
		System.out.println("解析后的国际标准日期为:"+date);

	}

}

代码如下(输出):

解析前的字符串为:2021012317:43:28
解析后的国际标准日期为:Sat Jan 23 17:43:28 CST 2021

注意

时间字符串的格式应与SimpleDateFormat中的pattern一致,否则会报Unparseable date: "2021年01月23日 17:43:28这个错,匹配不上。

2.将时间戳转换成字符串

代码如下(例子):

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

public class Test05 {
     

	public static void main(String[] args) {
     
		Date date = new Date();
		//获取当前时间距离1970-01-01    00:00:00:000的毫秒值表示形式的时间戳
		long timeStamp = date.getTime();
		System.out.println("没有经过转换的时间戳为:"+timeStamp);
		SimpleDateFormat simpleDateFormat01 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss", Locale.getDefault());
		String string = simpleDateFormat01.format(timeStamp);
		System.out.println("经过转换后的字符串为:"+string);

	}

代码如下(输出):

没有经过转换的时间戳为:1611397627289
经过转换后的字符串为:2021012318:27:07

3.将字符串转换成时间戳

代码如下(例子):

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

public class Test06 {
     

	public static void main(String[] args) throws ParseException {
     
		String string = "2021年01月23日 18:27:07";
		System.out.println("原始字符串为:"+string);
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss", Locale.getDefault());
		Date date = simpleDateFormat.parse(string);
		System.out.println("字符串经过转换变成的国际标准时间格式:"+date);
		long timeStamp = date.getTime();
		System.out.println("国际标准时间格式转换成的时间戳为:"+timeStamp);

	}

}

代码如下(输出):

原始字符串为:2021012318:27:07
字符串经过转换变成的国际标准时间格式:Sat Jan 23 18:27:07 CST 2021
国际标准时间格式转换成的时间戳为:1611397627000

总结

有人会问为什么没有日期对象转换成字符串呢,其实我已经说过了,向上一个大例子 3.定制日期输出格式里面的例子就是了。
从这几个例子中我们可以发现的点是:
1、时间字符串的格式应与SimpleDateFormat中的pattern一致。
2、只要遇见其他时间类型转成字符串的如下面黄色部分都是SimpleDateForma.format。遇见其转成时间类型的就是SimpleDateForma.parse。
3、导包一定要导对
日期格式处理_第1张图片其实时间的日期的转发还有多,但是基本上都有一个主流,但是最好理解的也有,作为初学者我更注重的是理解,现在的主流排其次吧。

你可能感兴趣的:(Java学习日记,字符串,java,编程语言)