如何使用Java中的Date类和DateFormat函数处理日期时间?
Java中的Date类和DateFormat函数是用于处理日期时间的重要类。在Java中,日期和时间都是以毫秒为基本单位。这意味着时间是一个长整型值,表示自1970年1月1日0时0分0秒以来的毫秒数。在本文中,我们将了解如何使用Date类和DateFormat函数处理Java中的日期时间。
Java中的Date类
Java中的Date类代表了一个特定的时间点。它实现了Serializable接口,因此可以被序列化和反序列化。Date类提供了一些方法来管理日期和时间。有两个构造函数可以用来创建Date对象,一个是无参构造函数,另一个是带long值的构造函数。
下面是一个使用Date类的示例:
import java.util.*;
public class DateDemo {
public static void main(String args[]) {
// create a date object
Date date = new Date();
// display time and date
System.out.println(date.toString());
}
}
输出:
Wed Aug 18 18:59:16 CST 2021
上述示例创建了一个Date对象并将其打印输出。由于toString()方法已经被Date类重载,因此输出将显示日期和时间的详细信息。
Java中的DateFormat函数
DateFormat类被用于将日期时间从字符串转换为Java中的Date对象,并将日期时间从Date对象转换为字符串。DateFormat类是一个抽象类,不能直接创建对象,必须使用其具体子类。SimpleDateFormat是最常用的DateFormat子类之一,它可以将日期时间格式化成各种不同的形式。
下面是一个使用SimpleDateFormat类的示例:
import java.util.*;
import java.text.*;
public class DateDemo {
public static void main(String args[]) {
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println("Current Date: " + ft.format(date));
}
}
输出:
Current Date: Wed 2021.08.18 at 06:59:16 PM CST
上述示例使用SimpleDateFormat类将当前日期和时间格式化为指定格式,并在控制台上打印输出。
格式化日期和时间
使用DateFormat类,可以将Date对象格式化为指定的日期和时间字符串。以下是一些用于格式化日期和时间的有用的字母:
| 字母 | 含义 |
| --- | --- |
| y | 年份 |
| M | 月份 |
| d | 日期 |
| H | 小时 |
| m | 分钟 |
| s | 秒 |
以下是一些常见的格式化模式:
| 模式 | 含义 |
| --- | --- |
| yyyy-MM-dd | 2021-08-18 |
| yyyy-MM-dd HH:mm:ss | 2021-08-18 19:08:01 |
| yyyy-MM-dd HH:mm:ss.SSS | 2021-08-18 19:08:01.123 |
| EEE, d MMM yyyy HH:mm:ss Z | 星期三, 18 八月 2021 19:08:01 +0800 |
| EEE, MMM d yyyy | 星期三, 八月 18 2021 |
下面是一个使用SimpleDateFormat类的示例:
import java.util.*;
import java.text.*;
public class DateDemo {
public static void main(String args[]) {
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
System.out.println("Current Date: " + ft.format(date));
}
}
输出:
Current Date: 2021-08-18 07:08:01
解析日期和时间
使用DateFormat类,可以将字符串解析为Date对象。以下是简单的示例:
import java.util.*;
import java.text.*;
public class DateDemo {
public static void main(String args[]) throws ParseException {
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd");
String input = "2021-08-18";
Date t = ft.parse(input);
System.out.println(t);
}
}
输出:
Wed Aug 18 00:00:00 CST 2021
上述示例使用SimpleDateFormat类将字符串格式化为Date对象。
总结
在本篇文章中,我们学习了如何使用Date类和DateFormat函数处理Java中的日期时间。我们看到了如何使用Date类创建日期时间对象,如何使用SimpleDateFormat类将日期时间格式化为不同的形式,并如何使用它将字符串解析为Date对象。熟悉这些类和方法可以帮助我们更好地处理Java中的日期时间,并从中获得更多的灵活性和控制。
