Java时间类

Date

计算时间时初始时间为1970年1月1日 00:00:00

初始化

import java.util.Date;

1、无参的

Date d1 = new Date();                //  得到现在的时间

2、有参的

long date = 1000*60*60;

Date d2 = new Date(date);    //输出:Thu Jan 01 09:00:00 CST 1970

常用方法

计算现在距初始时间多少毫秒

Date d = new Date();

System.out.println(d.getTime());               //输出:1718072678201

计算初始时间过了多少毫秒以后是什么时候

long time = 1000*60*60;

d.setTime(time);                    //输出: Thu Jan 01 09:00:00 CST 1970

SimpleDateFormat日期转换类

import java.text.ParseException;
import java.text.SimpleDateFormat;

//格式化:从 Date 到 String  使用format
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat();//输出格式:24-6-11 上午10:38
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");                      //输出格式:24年6月11日 10:38:24
String s = sdf.format(d);

//从 String 到 Date  使用parse
String ss = "2048-08-09 11:11:11";
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dd = sdf2.parse(ss);//输出格式:Sun Aug 09 11:11:11 CST 2048

LocalDateTime

import java.time.LocalDateTime;

初始化

1、无参

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

2、有参

LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 11, 11, 11, 11); //输出指定时间

获取年月日等时间的方法

获取年份;:int year = localDateTime.getYear();  // 2020
获取月份:int month = localDateTime.getMonthValue();  // 11 
获取日期:int day = localDateTime.getDayOfMonth();   //11
获取一年中的第几天(1-366)int dayOfYear = localDateTime.getDayOfYear();  //316
获取分钟 int minute = localDateTime.getMinute();
获取小时 int hour = localDateTime.getHour();


特别的
获取星期
import java.time.DayOfWeek;
DayOfWeek dayOfWeek = localDateTime.getDayOfWeek();
获取月份
import java.time.Month;
Month month1 = localDateTime.getMonth();


import java.time.LocalDate;
import java.time.LocalDateTime;  ==  import java.time.*;
import java.time.LocalTime;

转换成为一个LocalDate对象,获取日期
LocalDate localDate = localDateTime.toLocalDate(); // 2020-12-12

转换成为一个LocalTime对象,获取时间
LocalTime localTime = localDateTime.toLocalTime(); // 08:10:12

格式化和解析

import java.time.format.DateTimeFormatter;

LocalDateTime localDateTime = LocalDateTime.now() 

//ofPattern使用指定的日期模板获取一个日期格式化器

DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");

//Format把一个LocalDateTime格式化成为一个字符串

String s = localDateTime.format(pattern);

//parse把一个日期字符串解析成为一个LocalDateTime对象

LocalDateTime parse = LocalDateTime.parse(s, pattern);

加减时间

LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 11, 13, 14, 15);

LocalDateTime newLocalDateTime = localDateTime.plusYears(-1);

// 2019-11-11T13:14:15   时间少一年

LocalDateTime newLocalDateTime = localDateTime.minusYears(-1);

//2021-11-11T13:14:15   时间加一年

修改时间

直接修改月份,修改范围要合理。下面是修改月份,范围为1—12

LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 11, 13, 14, 15);

LocalDateTime newLocalDateTime = localDateTime.withMonth(12);// 2020-12-11T13:14:15

Period计算时间间隔

import java.time.Period;

LocalDate localDate1 = LocalDate.of(2020, 1, 1);
LocalDate localDate2 = LocalDate.of(2048, 12, 12);

//between(开始时间,结束时间)  计算两个"时间"的间隔
Period period = Period.between(localDate1, localDate2);
System.out.println(period);//P28Y11M11D
//getYears()         获得这段时间的年数
System.out.println(period.getYears());//28
//getMonths()        获得此期间的月数,不是总月数
System.out.println(period.getMonths());//11
//getDays()          获得此期间的天数
System.out.println(period.getDays());//11

//toTotalMonths()   获取此期间的总月数,不是总天数
System.out.println(period.toTotalMonths());//347

Duration计算时间间隔

import java.time.Duration;

LocalDateTime localDateTime1 = LocalDateTime.of(2020, 1, 1, 13, 14, 15);
LocalDateTime localDateTime2 = LocalDateTime.of(2020, 1, 2, 11, 12, 13);


//between(开始时间,结束时间)  计算两个“时间"的间隔
Duration duration = Duration.between(localDateTime1, localDateTime2);//PT21H57M58S
//toSeconds()          获得此时间间隔的秒
System.out.println(duration.toSeconds());//79078
//toMillis()            获得此时间间隔的毫秒
System.out.println(duration.toMillis());//79078000
//toNanos()             获得此时间间隔的纳秒
System.out.println(duration.toNanos());//79078000000000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值