1、Java 日期
Java没有内置的Date类,但是我们可以导入java.time包以使用日期和时间API。该软件包包括许多日期和时间类。例如:
类 | 描述 |
LocalDate | 代表日期(年,月,日(yyyy-MM-dd)) |
LocalTime | 表示时间(小时,分钟,秒和纳秒(HH-mm-ss-ns)) |
LocalDateTime | 代表日期和时间(yyyy-MM-dd-HH-mm-ss-ns) |
DateTimeFormatter | 用于显示和解析日期时间对象的格式化程序 |
boolean after(Date date) | 如果调用Date对象包含 或晚于指定的日期则返回true, 否则,返回false。 |
boolean before(Date date) | 如果调用Date对象包含 或早于日期指定的日期返回true, 否则,返回false。 |
Object clone( ) | 重复调用Date对象。 |
int compareTo(Date date) | 调用对象的值与日期比较。 如果这两个值相等返回0。 如果调用对象是早于日期返回一个负值。 如果调用对象迟于日期返回正值。 |
int compareTo(Object obj) | 以相同的compareTo(Date)操作 如果obj是一个类日期。 否则,它会抛出一个ClassCastException。 |
boolean equals(Object date) | 如果调用Date对象包含相同的时间 及日期指定日期则返回true, 否则,返回false。 |
long getTime( ) | 返回自1970年1月1日起已经过的毫秒数。 |
int hashCode( ) | 返回调用对象的哈希代码。 |
void setTime(long time) | 设置所指定的时间, 这表示从1970年1月1日从午夜的时间 和日期以毫秒为单位经过的时间。 |
String toString( ) | 调用Date对象转换为字符串, 并返回结果。 |
2、获取输出当前日期
要获取当前日期,请导入java.time.LocalDate
类,并使用其now()
方法:
例如:
import java.time.LocalDate; // import the LocalDate class public class Main { public static void main(String[] args) { LocalDate myObj = LocalDate.now(); // 创建日期对象 System.out.println(myObj); // 获取当前日期 } }
3、获取输出当前时间
要获取当前时间(小时,分钟,秒和纳秒),请导入java.time.LocalTime
类,并使用其now()
方法:
例如:
import java.time.LocalTime; // import the LocalTime class public class Main { public static void main(String[] args) { LocalTime myObj = LocalTime.now(); System.out.println(myObj); } }
4、获取输出当前时间和日期
要获取当前日期和时间,请导入java.time.LocalDateTime
类,并使用其now()
方法:
例如:
import java.time.LocalDateTime; // import the LocalDateTime class public class Main { public static void main(String[] args) { LocalDateTime myObj = LocalDateTime.now(); System.out.println(myObj); } }
5、格式化时间和日期
可以在同一包中将DateTimeFormatter类与ofPattern()方法一起使用,以格式化或解析日期时间对象。
例如:
import java.time.LocalDateTime; // Import the LocalDateTime class import java.time.format.DateTimeFormatter; // Import the DateTimeFormatter class public class Main { public static void main(String[] args) { LocalDateTime myDateObj = LocalDateTime.now(); System.out.println("Before formatting: " + myDateObj); DateTimeFormatter myFormatObj = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss"); String formattedDate = myDateObj.format(myFormatObj); System.out.println("After formatting: " + formattedDate); } }
如果要以其他格式显示日期和时间,ofPattern()方法可以接受所有类型的值。例如:
字符 | 描述 | 例子 |
G | 时代指示器 | AD |
y | 四位数年份 | 2001 |
M | 年中的月份 | July or 07 |
d | 月份中日期 | 10 |
h | 时间 A.M./P.M.(1~12) | 12 |
H | 天中的小时 (0~23) | 22 |
m | 小时中的分钟 | 30 |
s | 分钟中的秒钟 | 55 |
S | 毫秒 | 234 |
E | 星期中的天 | Tuesday |
D | 年中的天 | 360 |
F | 月中星期中的天 | 2 (second Wed. in July) |
w | 年中的星期 | 40 |
W | 月中的星期 | 1 |
a | A.M./P.M. 标记 | PM |
k | 天中的小时(1~24) | 24 |
K | 小时A.M./P.M. (0~11) | 10 |
z | 时区 | 东部标准时间 |
' | 脱离文本 | 分隔符 |
" | 单引号 | ` |
日期格式 | 示例 |
yyyy-MM-dd | "1988-09-29" |
dd/MM/yyyy | "29/09/1988" |
dd-MMM-yyyy | "29-Sep-1988" |
E,MMM dd yyyy | “1988年9月29日,星期四” |
6、使用SimpleDateFormat格式化日期
SimpleDateFormat
是一个具体的类,以本地方式用于格式化和转换日期。SimpleDateFormat
允许选择用户定义的模式为日期时间格式。例如:
import java.util.*; import java.text.*; public class DateDemo { public static void main(String args[]) { Date dNow = new Date( ); SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz"); System.out.println("Current Date: " + ft.format(dNow)); } }