常用类:日期时间

目录

1.7之前的日期 —— Date

java.util.Date ——  java中的时间

java.sql.Date —— 数据库中的时间

方法

类型转换

Date格式化 —— SimpleDateFormat

创建

转换

1.8之后的日期 —— LocalDateTime

LocalDate、LocalTime、LocalDateTime

创建

常用方法

瞬时 —— Instant

创建

方法

日期格式化 —— DateTimeFormatter


一、1.7之前的日期 —— Date

  • java.util.Date ——  java中的时间

                        创建:        

                                有参创建:Date(long date);

                                无参创建:Date();   

//导包 java.util.Date
//无参创建,当前时间
Date date = new Date();
System.out.println("当前时间" + date);

//有参创建,指定时间毫秒值
Date date1 = new Date(111111111111111L);
System.out.println("指定时间毫秒值" + date1);
  • java.sql.Date —— 数据库中的时间

                        创建:

                                有参创建:Date(long date);

//有参创建,指定时间毫秒值
//导包 java.sql.Date
Date date = new Date(111111111111111L);
System.out.println("指定时间毫秒值" + date);
  • 方法

        toString();        将Date对象转成字符串对象

        getTime();        获取当前Date对象时间毫秒值

        setTime();        设置Date对象时间毫秒值

Date date = new Date(1111111111111111111L);

//toString
SyStem.out.println(date.toString());

//getTime
long l = date.getTime();
System.out.println(l);

//setTime
date.setTime(222222222222222222L);
System.out.println(date);
  • 类型转换

        ①.sql ——> util

                使用多态进行转换

//导包 java.util.Date

Date date = new java.sql.Date(1212121121212121L);
System.out.println(date);

        ②.util ——> sql

                获取时间毫秒值,传入sql有参构造

//导包 java.util.Date
Date date = new Date();

//获取时间毫秒值
long l = date.getTime();

//传入sql有参构造
java.sql.Date d = new java.sql.Date(l);
System.out.println(d);

二、Date格式化 —— SimpleDateFormat

  • 创建

                ①.创建默认格式

                        new SimpleDateFormat( );

//默认格式
SimpleDateFormat sdf = new SimpleDateFormat();

                ②.创建自定义格式

                       new SimpleDateFormat(String pattern);

自定义格式对照表:

//创建自定义格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-WW-dd");
  • 转换

        日期对象 ——> 字符串:format()

Date date = new Date();

//默认格式
SimpleDateFormat sdf = new SimpleDateFormat();
String str = sdf.format(date);
System.out.println(str);

//自定义格式
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-WW-dd");
String str1 = sdf1.format(date);
System.out.println(str1);

        字符串 ——> 日期对象:parse()

//默认格式
String s1 = "22-5-4 下午5:12";
SimpleDateFormat sdf1 = new SimpleDateFormat();
Date date1 = sdf1.parse(s1);
System.out.println(date1);

//自定义格式
String s2 = "2022-01-04";
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-WW-dd");
Date date2 = sdf2.parse(s2);
System.out.println(date2);


三、1.8之后的日期 —— LocalDateTime

  • LocalDate、LocalTime、LocalDateTime

        LocalDate、LocalTimeLocalDateTime类是其中比较重要的几个类,他们的实例是不可变的对象,分别表示使用ISO-8601日历系统的日期、时间、日期和时间。他们提供了简单的本地日期或时间,并不包含当前的时间信息,也不包含与时区相关的信息。

        LocalDate:代表IOS格式和(yyyy-MM-dd) 的日期,可以存储生日、纪念日等日期。

        LocalTime:表示一个时间,而不是日期。

        LocalDateTime是用来表示日期和时间。

  • 创建

        ①.默认格式创建

                LocalDateTime.now( ); 根据当前时间创建对象/指定时区的对象

//当前时间
LocalDateTime now = LocalDateTime.now();

//指定时区时间
LocalDateTime now = LocalDateTime.now(ZoneOffset.ofHours(8));

        ②.自定义格式创建

                LocalDateTime.of( );        根据指定日期 / 时间 创建对象

//指定 年月日时分
LocalDateTime of = LocalDateTime.of(2000, 11, 11, 11, 11);
  • 常用方法

        ①.获取             

getYear

getMonthValue(数字)

getDayOfMonth

今年第几天

getDayOfYear

星期

getDayOfWeek

getHour

getMinute

getSecond

//默认
LocalDateTime ldt = LocalDateTime.now(ZoneOffset.ofHours(8));
System.out.println("默认:"+ldt);
			
//自定义
LocalDateTime zdy = LocalDateTime.of(2003, 11, 26, 0, 0);
System.out.println("自定义:"+zdy);
			
//获取几号
int dayOfMonth = ldt.getDayOfMonth();
System.out.println("获取日:"+ dayOfMonth);
		
//获取今年第几天
int dayOfYear = ldt.getDayOfYear();
System.out.println("获取今年第几天:"+dayOfYear);
			
//星期几
DayOfWeek dayOfWeek = ldt.getDayOfWeek();			
System.out.println(dayOfWeek);

//获取月份
Month month = ldt.getMonth();
System.out.println(month);
		
//获取月份(数字型)
int monthValue = ldt.getMonthValue();
System.out.println("月份:"+monthValue);
			
//获取年
int year = ldt.getYear();
System.out.println("年:"+year);
		
//获取时分秒
int hour = ldt.getHour();
int minute = ldt.getMinute();
int second = ldt.getSecond();
System.out.println("时间:" + hour + ":" + minute + ":" + second);

        ②.修改                

今年第几天

withYear

withMonth

withDayOfMonth

withDayOfYear

//默认
LocalDateTime ldt = LocalDateTime.now(ZoneOffset.ofHours(8));
System.out.println("默认:"+ldt);
			
//自定义
LocalDateTime zdy = LocalDateTime.of(2003, 11, 26, 0, 0);
System.out.println("自定义:"+zdy);

//修改日
LocalDateTime withDayOfMonth = ldt.withDayOfMonth(1);
System.out.println("修改日:" + withDayOfMonth);
		
//修改年中第几天
LocalDateTime withDayOfYear = ldt.withDayOfYear(250);
System.out.println("2022年第250天:" + withDayOfYear);
		
//修改月份
LocalDateTime withMonth = ldt.withMonth(8);
System.out.println("2022年8月:" + withMonth);
		
//修改年
LocalDateTime withYear = ldt.withYear(2024);
System.out.println("2024年:" + withYear);

        ③.增减                

plusYears

plusMonths

plusWeeks

plusDays

minusYears

minusMonths

minusWeeks

minusDays

//默认
LocalDateTime ldt = LocalDateTime.now(ZoneOffset.ofHours(8));
System.out.println("默认:"+ldt);
			
//自定义
LocalDateTime zdy = LocalDateTime.of(2003, 11, 26, 0, 0);
System.out.println("自定义:"+zdy);

//增减天数
LocalDateTime plusDays = ldt.plusDays(2);
System.out.println("加两天:" + plusDays);
			
LocalDateTime minusDays = ldt.minusDays(2);
System.out.println("减两天:"+minusDays);
		
//增减周	
LocalDateTime plusWeeks = ldt.plusWeeks(2);
System.out.println("增加两周:" + plusWeeks);

LocalDateTime minusWeeks = ldt.minusWeeks(2);
System.out.println("减少两周:" + minusWeeks);
		
//增减月
LocalDateTime plusMonths = ldt.plusMonths(1);
System.out.println("增加一个月:" + plusMonths);
		
LocalDateTime minusMonths = ldt.minusMonths(1);
System.out.println("减少一个月:" + minusMonths);

四、瞬时 —— Instant

  • 创建

                Instant.now()   格林威治时间

//格林威治时间
Instant in = Instant.now();
  • 方法

方法

描述

now()

静态方法,返回默认UTC时区的Instant类的对象

ofEpochMilli(long epochMilli)

静态方法,返回在1970-01-01 00:00:00基础上指定毫秒数之后的Instant类的对象

atOffset(ZoneOffset offset)

结合即时的偏移创建一个OffsetDatetime对象

即时偏移量:ZoneOffset.ofHours(int hours);

toEpochMilli()

返回1970-01-01 00:00:00到当前时间的毫秒数,即为时间戳

Instant in = Instant.now();

//获取指定时区时间
OffsetDateTime od = in.atOffset(ZoneOffset.ofHours(8));
System.out.println(od);
		
//指定毫秒值
Instant is = Instant.ofEpochMilli(111111111111l);
System.out.println(is);
		
//获取时间戳
long te = od.toEpochSecond();
System.out.println(te);
  • 日期格式化 —— DateTimeFormatter

        创建

                ①.标准格式:DateTimeFormatter.ISO_Date_TIME;

                ②.本地格式:DateTimeFormatter.ofLocalizedDateTime( );

                ③.自定义格式:DateTimeFormatter.ofPattern( );

//创建标准格式	
DateTimeFormatter dtf = DateTimeFormatter.ISO_DATE;

//创建本地风格
DateTimeFormatter dtf1 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG);

//创建自定义风格
DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值