一,Java⽇日期处理理类Date详解
时间的基础知识
时区:整个地球分为⼆二⼗十四时区,每个时区都有⾃自⼰己的本地时间。
为了了统⼀一起⻅见,使⽤用⼀一个统⼀一的时间,称为全球标准时间(UTC, Universal Time
Coordinated)。
TC与格林林尼治平均时(GMT, Greenwich Mean Time,也翻译成:格林林威治标准时间)差不不多⼀一
样
CST(北北京时间),北北京时间,China Standard Time,中国标准时间。在时区划分上,属东⼋八
区,⽐比协调世界时早8⼩小时,记为UTC+8。
时间戳:⾃自 1970 年年 1 ⽉月 1 ⽇日(08:00:00 GMT)⾄至当前时间的总秒数,它也被称为Unix时
间戳(Unix Timestamp),⼴广泛的运⽤用在知识产权保护、 合同签字、 ⾦金金融帐务、 电⼦子报价投
标、 股票交易易等⽅方⾯面
格式多种:2050-10-31 10:11:11、2050/10/31 10/10:10
年年、⽉月、⽇日、周⼏几等
package chapter13;
import java.util.Date;
//不要导入sql下的Date
public class DateTest {
public static void main(String [] args){
// Date date=new Date();//表示当前用户创建的时间
// System.out.println(date);
// System.out.println(date.getTime());
Date date=new Date(1649469789395L);//时间戳作为参数
System.out.println(date);
System.out.println(date.getTime());
}
}
时间戳的计算可以借助网上的工具
二,java核⼼之常⻅时间⽇期讲解
package chapter13;
import java.time.LocalDate;
public class LocalDateTest {
public static void main(String [] args){
//LocalDate的构造函数是私有的不能通过new来创建
LocalDate today= LocalDate.now();
System.out.println("当前时间是"+today);
//获取年月日
System.out.println("现在是那年"+today.getYear());
System.out.println("当前是哪月"+today.getMonth());
System.out.println("当前哪月(数字)"+today.getMonthValue());
System.out.println("当前是几号"+today.getDayOfMonth());
System.out.println("当前是周几"+today.getDayOfWeek());
//加减年份,加后返回的对象才是修改后的,旧的依旧是旧的
LocalDate changdDate=today.plusYears(1);
System.out.println("新的是哪一年"+changdDate);
System.out.println("旧的是哪一年"+today);
//日期比较
System.out.println("isAfter:"+changdDate.isAfter(today));
}
}
结果
其他常见API
//getYear() int 获取当前⽇日期的年年份
//getMonth() Month 获取当前⽇日期的⽉月份对象
//getMonthValue() int 获取当前⽇日期是第⼏几⽉月
//getDayOfWeek() DayOfWeek 表示该对象表示的⽇日期是星期⼏几
//getDayOfMonth() int 表示该对象表示的⽇日期是这个⽉月第⼏几天
//getDayOfYear() int 表示该对象表示的⽇日期是今年年第⼏几天
//withYear(int year) LocalDate 修改当前对象的年年份
//withMonth(int month) LocalDate 修改当前对象的⽉月份
//withDayOfMonth(int dayOfMonth) LocalDate 修改当前对象在当⽉月的⽇日期
//plusYears(long yearsToAdd) LocalDate 当前对象增加指定的年年份数
//plusMonths(long monthsToAdd) LocalDate 当前对象增加指定的⽉月份数
//plusWeeks(long weeksToAdd) LocalDate 当前对象增加指定的周数
//plusDays(long daysToAdd) LocalDate 当前对象增加指定的天数
//minusYears(long yearsToSubtract) LocalDate 当前对象减去指定的年年数
//minusMonths(long monthsToSubtract) LocalDate 当前对象减去注定的⽉月数
//minusWeeks(long weeksToSubtract) LocalDate 当前对象减去指定的周数
//minusDays(long daysToSubtract) LocalDate 当前对象减去指定的天数
//compareTo(ChronoLocalDate other) int ⽐比较当前对象和other对象在时
间上的⼤大⼩小,返回值如果为正,则当前对象时间较晚,
LocalTime 常⽤用API
LocalDateTime 常⽤用API
Time和DateTime和LocalDatele
三,新版JDK8之时间⽇日期格式化
package chapter13;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class FormatTest {
public static void main(String [] args){
// LocalDateTime ldt=LocalDateTime.now();
// System.out.println(ldt);
// DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-D HH:mm:ss");//很常用,一定要记住
// String ldtSrt=dtf.format(ldt);
// System.out.println(ldtSrt);
LocalDateTime today=LocalDateTime.now();
System.out.println(today);
LocalDateTime changeDate= LocalDateTime.of(2023,10,1,10,40,30);
//第二个参数减第一个参数
Duration duration=Duration.between(today,changeDate);
System.out.println(duration.toDays());//两个时间差的天数
System.out.println(duration.toHours());//两个时间差的小时
System.out.println(duration.toMinutes());//两个时间差的分钟
System.out.println(duration.toMillis());//两个时间差的毫秒
}
}