Java中的日期时间

简介: 浅浅来学习一下java中的日期时间的相关知识点吧。

Date 类

java.util 包提供了 Date 类来封装当前的日期和时间。

import.util.Date

java中的时间使用标准类库的Date类表示,是用距离一个固定时间点的毫秒数(可正可负,long类型)表达一个特定的时间点。固定时间点叫纪元,是UTC时间 1970年1月1日 00:00:00。

//获取现在时间Datenow=newDate();
System.out.println(now);
//获取long值longtime=now.getTime();
System.out.println(time);
//明天此时的值time+=1000*60*60*24;
//设置了一个long值,使它表示我们设置的值now.setTime(time);
System.out.println(now);

image.png

SimpleDateFormat

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。

//根据给定的日期格式将String与Date相互转换SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//format() 方法可以将给定的date对象所表示的时间按照给定的日期格式转化成字符串Stringstr=sdf.format(now);
System.out.println(str);
//Date parse()方法将给定字符串按照给定的日期格式解析为一个date对象Stringstr1="2020-11-11 11:11:11";
SimpleDateFormatsdf1=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Datedate=sdf1.parse(str1);
System.out.println(date);

日期模式匹配符

image.png

Calendar

Calendar,日历类,该类是一个抽象类,封装了对时间的相关操作

常用的实现是格力高里历(阳历)GregorianCalendar类

Calendar类实现了公历日历,GregorianCalendar是Calendar类的一个具体实现。

//创建一个代表系统当前日期的Calendar对象Calendarc=Calendar.getInstance();//默认是当前日期//创建一个指定日期的Calendar对象//使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。//创建一个代表2022年2月12日的Calendar对象Calendarc1=Calendar.getInstance();
c1.set(2022, 2-1, 12);
//使用静态方法创建实例//该方法根据系统所在地区创建一个相应实现类Calendarc=Calendar.getInstance();
System.out.println(c);//无法直观表示时间// Calendar 提供了方法getTime()返回一个date对象,该对象表示时间就是当前Calendar表示的时间Datedate=c.getTime();
System.out.println(date);
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(date));
//表示明天这一时刻date.setTime(date.getTime()+1000*60*60*24);
System.out.println(date);

Calender的月份是从0开始的,但日期和年份是从1开始的。

//Calendar 提供针对不同时间分量单独设置值的方法voidset(intfiled,intvalue);
//第一个参数为时间值:时间分量 如 年月日,第二个 对应的值c.set(Calendar.YEAR,2021);

获取时间

获取时间intget(intfiled)
Calendarc2=Calendar.getInstance();
intyear=c2.get(Calendar.YEAR);
intmonth=c2.get(Calendar.MONTH)+1;
intday=c2.get(Calendar.DATE);
inthour=c2.get(Calendar.HOUR);
intmin=c2.get(Calendar.MINUTE);
ints=c2.get(Calendar.SECOND);
查看星期几intdow=c2.get(Calendar.DAY_OF_WEEK);
System.out.println("周"+(dow==1?"7":dow-1));
String[] data={"日","一","二","三","四","五","六"};
System.out.println("周"+data[dow-1]);
查看今年过了多少天intday1=c2.get(Calendar.DAY_OF_YEAR);
System.out.println(year+"已经过"+day1+"天");

getActuakMaximum方法
返回指定日历字段可能拥有的最大值

intday2=c2.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(day2);
//2月天数,闰年c2.set(Calendar.MONTH,1);
day2=c2.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(day2);

Calendar中计算时间的方法

c2.add(Calendar.YEAR,3);
System.out.println(c2.getTime());
c2.add(Calendar.HOUR,-5);
System.out.println(c2.getTime());

浅浅了解了一下java中有关日期时间的知识点,如果有啥问题,欢迎大家指出,谢谢大家。







目录
相关文章
|
2天前
|
Java API 调度
Java 日期与时间处理:精准掌控时间流转
Java 8引入了全新的日期和时间API,解决了旧版`java.util.Date`和`Calendar`类设计不佳、操作繁琐的问题。新API包括`LocalDate`、`LocalTime`和`LocalDateTime`类,操作简洁直观,符合日常思维习惯。同时提供了`Period`和`Duration`处理时间间隔,以及`DateTimeFormatter`进行格式化输出。这些改进使开发者能更高效、准确地处理日期和时间,极大提升了开发效率与代码质量。 (239字符)
18 5
|
2月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
60 26
|
2月前
|
安全 Java API
告别SimpleDateFormat:Java 8日期时间API的最佳实践
在Java开发中,处理日期和时间是一个基本而重要的任务。传统的`SimpleDateFormat`类因其简单易用而被广泛采用,但它存在一些潜在的问题,尤其是在多线程环境下。本文将探讨`SimpleDateFormat`的局限性,并介绍Java 8引入的新的日期时间API,以及如何使用这些新工具来避免潜在的风险。
40 5
|
6月前
|
Java
Java基础之日期和时间
Java基础之日期和时间
40 1
|
7月前
|
安全 Java 程序员
Java8实战-新的日期和时间API
Java8实战-新的日期和时间API
53 3
|
3月前
|
Java API
Java的日期类都是怎么用的
【10月更文挑战第1天】本文介绍了 Java 中处理日期和时间的三个主要类:`java.util.Date`、`java.util.Calendar` 和 `java.time` 包下的新 API。`Date` 类用于表示精确到毫秒的瞬间,可通过时间戳创建或获取当前日期;`Calendar` 抽象类提供丰富的日期操作方法,如获取年月日及时区转换;`java.time` 包中的 `LocalDate`、`LocalTime`、`LocalDateTime` 和 `ZonedDateTime` 等类则提供了更为现代和灵活的日期时间处理方式,支持时区和复杂的时间计算。
56 14
|
4月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
57 3
|
4月前
|
安全 Java API
时间日期API(Date,SimpleDateFormat,Calendar)+java8新增日期API (LocalTime,LocalDate,LocalDateTime)
这篇文章介绍了Java中处理日期和时间的API,包括旧的日期API(Date、SimpleDateFormat、Calendar)和Java 8引入的新日期API(LocalTime、LocalDate、LocalDateTime)。文章详细解释了这些类/接口的方法和用途,并通过代码示例展示了如何使用它们。此外,还讨论了新旧API的区别,新API的不可变性和线程安全性,以及它们提供的操作日期时间的灵活性和简洁性。
|
5月前
|
前端开发 JavaScript Java
【前端学java】java中的日期操作(13)
【8月更文挑战第10天】java中的日期操作
28 2
|
5月前
|
Java
比较两个日期是否相等Java
这篇文章提供了Java中比较两个日期是否相等的两种方法:使用`Calendar`类和`SimpleDateFormat`类来确定两个日期是否为同一天,并附有详细的代码示例和测试结果。