日期时间类
日期时间类
date类
-
创建Date对象:
- 可以通过将当前时间毫秒值传递给构造函数来创建
Date
对象。
javalong currentTime = System.currentTimeMillis(); Date currentDate = new Date(currentTime);
- 可以通过将当前时间毫秒值传递给构造函数来创建
-
获取时间戳:
Date
对象的getTime()
方法返回自1970年1月1日00:00:00 GMT以来的毫秒数。
-
设置和获取日期和时间:
setYear(int year)
,getYear()
,setMonth(int month)
,getMonth()
,setDate(int date)
,getDate()
,setHours(int hours)
,getHours()
, 等等,用于设置和获取日期和时间的各个部分。
-
比较日期:
before(Date when)
:测试当前Date
对象是否在指定的Date
对象之前。after(Date when)
:测试当前Date
对象是否在指定的Date
对象之后。equals(Object obj)
:测试当前Date
对象是否与指定的Date
对象相等。
-
格式化日期:
- 尽管
Date
类本身不提供格式化功能,但可以通过SimpleDateFormat
类将Date
对象格式化为易读的字符串。
- 尽管
-
克隆Date对象:
clone()
:返回Date
对象的一个副本。
-
时间操作:
- 可以通过加减毫秒值来修改
Date
对象表示的时间。
- 可以通过加减毫秒值来修改
以下是Date
类的一个简单使用示例:
import java.util.Date;
public class DateExample {
public static void main(String[] args) {
// 创建一个新的Date对象,表示当前时间
Date now = new Date();
// 打印当前时间
System.out.println("Current time: " + now);
// 获取当前时间的毫秒值
long millis = now.getTime();
System.out.println("Milliseconds since epoch: " + millis);
// 创建一个Date对象,表示特定的时间
Date birthday = new Date(0); // 表示1970年1月1日00:00:00 GMT
// 比较两个日期
if (now.after(birthday)) {
System.out.println("Current time is after the epoch.");
}
// 克隆Date对象
Date clonedDate = (Date) now.clone();
System.out.println("Cloned time: " + clonedDate);
}
}
SimpleDateFormat类(格式化)
SimpleDateFormat
是Java中用于日期和时间格式化和解析的类,位于java.text
包中。它允许你以一种特定的方式来格式化Date
对象或者解析字符串为Date
对象。SimpleDateFormat
是不可变的,这意味着一旦创建了一个实例,就不能更改其模式。
以下是SimpleDateFormat
的一些关键用法:
- 创建SimpleDateFormat实例:
- 你需要提供一个日期和时间的模式字符串来创建
SimpleDateFormat
的实例。
- 你需要提供一个日期和时间的模式字符串来创建
- 格式化日期:
- 使用
format(Date date)
方法将Date
对象格式化为字符串。
- 使用
- 解析日期:
- 使用
parse(String source)
方法将字符串解析为Date
对象。
- 使用
- 设置和获取日期格式:
applyPattern(String pattern)
和toPattern()
方法用于设置和获取当前使用的日期时间模式。
以下是SimpleDateFormat
类的一些常用模式字符:
y
:年M
:月d
:日H
:小时(24小时制)m
:分钟s
:秒S
:毫秒E
:星期D
:一年中的第几天F
:一年中的第几周
以下是SimpleDateFormat
的一个简单使用示例:
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatExample {
public static void main(String[] args) {
// 创建Date对象
Date currentDate = new Date();
// 创建SimpleDateFormat实例,定义日期时间格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 格式化日期
String formattedDate = dateFormat.format(currentDate);
System.out.println("Formatted date: " + formattedDate);
// 解析日期
try {
Date parsedDate = dateFormat.parse("2024-08-05 10:30:00");
System.out.println("Parsed date: " + dateFormat.format(parsedDate));
} catch (Exception e) {
System.out.println("Error parsing date: " + e.getMessage());
}
}
}
Calendar(日历)
Java 中的 Calendar
类是 java.util
包的一部分,它是一个抽象类,提供了一种方法来操作日期和时间。Calendar
类提供了丰富的方法来添加或减去时间、字段之间的转换、以及获取或设置日期和时间的特定字段。
以下是 Calendar
类的一些关键用法:
- 获取Calendar实例:
- 使用
Calendar.getInstance()
方法来获取一个带有默认时区和语言环境的Calendar
实例。
- 使用
- 设置和获取日期和时间:
- 使用
set(int year, int month, int date, int hourOfDay, int minute, int second)
方法来设置日期和时间。 - 使用
get(int field)
方法来获取日期和时间的特定字段,如年、月、日等。
- 使用
- 字段常量:
Calendar
类定义了一系列的字段常量,如YEAR
、MONTH
、DAY_OF_MONTH
、HOUR_OF_DAY
等,用于指定日期和时间的特定部分。
- 添加时间:
- 使用
add(int field, int amount)
方法来给指定的日历字段添加或减去指定的时间量。
- 使用
- 比较日期:
- 使用
before(Object when)
和after(Object when)
方法来比较两个日期。
- 使用
- 清除和复位:
- 使用
clear()
方法来将Calendar
实例的所有字段复位为默认值。 - 使用
reset()
方法来清除当前字段的值。
- 使用
- 时间计算:
- 可以对
Calendar
实例进行算术运算,如增加或减少天数或月份。
- 可以对
以下是 Calendar
类的一个简单使用示例:
import java.util.Calendar;
public class CalendarExample {
public static void main(String[] args) {
// 获取Calendar实例
Calendar calendar = Calendar.getInstance();
// 获取当前日期和时间的各个字段
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH); // 注意:月份是从0开始的,0表示一月
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
System.out.println("Current date and time: ");
System.out.println("Year: " + year);
System.out.println("Month: " + (month + 1)); // 月份从1开始显示
System.out.println("Day: " + day);
System.out.println("Hour: " + hour);
System.out.println("Minute: " + minute);
System.out.println("Second: " + second);
// 设置日期和时间
calendar.set(2024, Calendar.AUGUST, 5, 10, 30, 0);
// 添加时间
calendar.add(Calendar.DATE, 10); // 添加10天
// 打印更新后的日期
System.out.println("Updated date after adding 10 days: ");
System.out.println("Year: " + calendar.get(Calendar.YEAR));
System.out.println("Month: " + (calendar.get(Calendar.MONTH) + 1));
System.out.println("Day: " + calendar.get(Calendar.DAY_OF_MONTH));
}
}
作者:静默虚空
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律