在Java中获取当前日期/时间的最佳方法是什么?
答案 0 :(得分:605)
这取决于您想要的日期/时间形式:
如果您希望将日期/时间作为单个数值,那么System.currentTimeMillis()
将为您提供,表示为UNIX纪元后的毫秒数(作为Java long
)。该值是UTC时间点的增量,与本地时区无关......假设系统时钟设置正确。
如果您希望表单中的日期/时间允许您以数字方式访问组件(年,月等),则可以使用以下方法之一:
new Date()
为您提供了使用当前日期/时间初始化的Date
对象。问题是Date
API方法大多存在缺陷......并且已弃用。
Calendar.getInstance()
使用默认Calendar
和Locale
为您提供使用当前日期/时间初始化的TimeZone
对象。其他重载允许您使用特定的Locale
和/或TimeZone
。日历有效...但API仍然很麻烦。
new org.joda.time.DateTime()
使用默认时区和年表为您提供使用当前日期/时间初始化的Joda-time对象。还有很多其他的Joda替代品......这里描述的太多了。 (但请注意,有些人报告说Joda时间存在性能问题。例如Jodatime's LocalDateTime is slow when used the first time。)
调用LocalDateTime.now()
和ZonedDateTime.now()
将为您提供当前日期/时间的表示 1 。
在Java 8之前,大多数了解这些事情的人都建议Joda-time拥有(到目前为止)用于处理涉及时间点和持续时间计算的最佳Java API。使用Java 8,这已不再适用。但是,如果您已经在代码库中使用Joda时间,则没有强大的 2 原因需要迁移。
1 - 请注意,LocalDateTime不包含时区。正如javadoc所说:“它不能代表时间线上的瞬间,没有附加信息,如偏移或时区。”
2 - 如果不这样做,您的代码将不会中断,并且您不会收到弃用警告。当然,Joda代码库可能会停止获取更新,但它不太可能需要它们。没有更新意味着稳定性,这是好的事情。另请注意,如果某人将解决Java平台中的回归导致的问题,那很有可能。
答案 1 :(得分:382)
如果您只需要输出YYYY.MM.DD-HH.MM.SS格式的时间戳(非常频繁的情况),那么这就是这样做的方法:
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
答案 2 :(得分:98)
如果您希望当前日期为String,请尝试:
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date));
或
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));
http://www.mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/
答案 3 :(得分:69)
在Java 8中,它是:
LocalDateTime.now()
如果您需要时区信息:
ZonedDateTime.now()
如果你想打印花哨的格式化字符串:
System.out.println(ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME))
答案 4 :(得分:45)
只需创建一个Date对象......
Date date = new Date();
答案 5 :(得分:41)
// 2015/09/27 15:07:53
System.out.println( new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(Calendar.getInstance().getTime()) );
// 15:07:53
System.out.println( new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()) );
// 09/28/2015
System.out.println(new SimpleDateFormat("MM/dd/yyyy").format(Calendar.getInstance().getTime()));
// 20150928_161823
System.out.println( new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()) );
// Mon Sep 28 16:24:28 CEST 2015
System.out.println( Calendar.getInstance().getTime() );
// Mon Sep 28 16:24:51 CEST 2015
System.out.println( new Date(System.currentTimeMillis()) );
// Mon Sep 28
System.out.println( new Date().toString().substring(0, 10) );
// 2015-09-28
System.out.println( new java.sql.Date(System.currentTimeMillis()) );
// 14:32:26
Date d = new Date();
System.out.println( (d.getTime() / 1000 / 60 / 60) % 24 + ":" + (d.getTime() / 1000 / 60) % 60 + ":" + (d.getTime() / 1000) % 60 );
// 2015-09-28 17:12:35.584
System.out.println( new Timestamp(System.currentTimeMillis()) );
// Java 8
// 2015-09-28T16:16:23.308+02:00[Europe/Belgrade]
System.out.println( ZonedDateTime.now() );
// Mon, 28 Sep 2015 16:16:23 +0200
System.out.println( ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME) );
// 2015-09-28
System.out.println( LocalDate.now(ZoneId.of("Europe/Paris")) ); // rest zones id in ZoneId class
// 16
System.out.println( LocalTime.now().getHour() );
// 2015-09-28T16:16:23.315
System.out.println( LocalDateTime.now() );
答案 6 :(得分:32)
Instant.now() // Capture the current moment in UTC, with a resolution of nanoseconds.
......或......
ZonedDateTime.now( ZoneId.of( "America/Montreal" ) ) // Capture the current moment as seen in the wall-clock time used by the people of a particular region (a time zone).
一些答案提到java.time类是与最早版本的Java捆绑在一起的麻烦的旧遗留日期时间类的现代替代品。以下是更多信息。
其他答案无法解释时区在确定当前日期和时间方面的重要性。对于任何给定时刻,日期和的时间因地区而异。例如,午夜后的几分钟是Paris France中的新一天,而Montréal Québec中仍然是“昨天”。
Instant
作为最佳做法,您的大部分业务逻辑和数据存储/交换都应在UTC中完成。要使用UTC中的分辨率获取nanoseconds中的当前时刻,请使用Instant
类。
Instant instant = Instant.now();
ZonedDateTime
您可以将Instant
调整为其他时区。应用ZoneId
对象获取ZonedDateTime
。
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( z );
我们可以跳过Instant
并直接获取当前ZonedDateTime
。
ZonedDateTime zdt = ZonedDateTime.now( z );
始终传递可选的时区参数。如果省略,则应用JVM的当前默认时区。默认情况下可以在任何时刻更改,甚至在运行时期间更改。不要让您的应用受到外部因素的影响。始终指定所需/预期的时区。
ZonedDateTime do_Not_Do_This = ZonedDateTime.now(); // BAD - Never rely implicitly on the current default time zone.
您稍后可以从Instant
中提取ZonedDateTime
。
Instant instant = zdt.toInstant();
当您想要时间轴上的实际时刻时,请始终使用Instant
或ZonedDateTime
而不是LocalDateTime
。 Local…
类型故意不具有时区概念,因此它们仅代表对可能时刻的粗略概念。要获得实际时刻,您必须指定一个时区,将Local…
类型转换为ZonedDateTime
,从而使其有意义。
LocalDate
LocalDate
类表示没有时间且没有时区的仅限日期的值。
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z ); // Always pass a time zone.
要生成表示日期时间值的String,只需在标准ISO 8601格式的java.time类上调用toString
。
String output = myLocalDate.toString(); // 2016-09-23
......或......
String output = zdt.toString(); // 2016-09-23T12:34:56.789+03:00[America/Montreal]
ZonedDateTime
类通过在方括号中明智地附加时区名称来扩展标准格式。
对于其他格式,请在DateTimeFormatter
课程中搜索许多问题和答案的Stack Overflow。
LocalDateTime
与RamanSB对问题的评论相反,您应该不使用LocalDateTime
类作为当前日期时间。
LocalDateTime
故意缺少任何时区或来自UTC的偏移信息。因此,当您跟踪时间线上的特定时刻时,不是合适的。当然不适合捕捉当前时刻。
“本地”措辞违反直觉。它意味着任何位置,而不是任何一个特定的位置。例如,圣诞节今年12月25日午夜开始:2017-12-25T00:00:00
,表示为LocalDateTime
。但这意味着在不同时间在全球不同地点的午夜。午夜发生在Kiribati,后来发生在新西兰,几个小时后发生在印度,依此类推,在法国圣诞节开始之前还有几个小时过去了,那时加拿大的孩子们还在等待那一天。这些圣诞节开始点中的每一个都将被表示为单独的ZonedDateTime
。
如果您不相信系统时钟,请参阅Java: Get current Date and Time from Server not System clock和my Answer。
java.time.Clock
要利用当前时刻的替代供应商,请编写抽象java.time.Clock
类的子类。
您可以将Clock
实现作为参数传递给各种 java.time 方法。例如,Instant.now( clock )
。
Instant instant = Instant.now( yourClockGoesHere ) ;
出于测试目的,请注意Clock
自身Clock
静态提供的offset
替代实施:fixed
,tick
,java.sql.*
等。
java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.Date
,Calendar
和& SimpleDateFormat
现在位于Joda-Time的maintenance mode项目建议迁移到java.time类。
要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310。
您可以直接与数据库交换 java.time 对象。使用符合JDBC driver或更高版本的JDBC 4.2。不需要字符串,不需要{{1}}类。
从哪里获取java.time类?
ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如Interval
,YearWeek
,YearQuarter
和more。
答案 7 :(得分:18)
使用:
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
System.out.println(timeStamp );
(它正在运作。)
答案 8 :(得分:15)
有许多不同的方法:
答案 9 :(得分:10)
创建日期对象,然后将其打印下来。
Date d = new Date(System.currentTimeMillis());
System.out.print(d);
答案 10 :(得分:9)
与上述解决方案类似。但我总是发现自己正在寻找这一大块代码:
Date date=Calendar.getInstance().getTime();
System.out.println(date);
答案 11 :(得分:9)
你看过java.util.Date吗?这正是你想要的。
答案 12 :(得分:8)
java.util.Date date = new java.util.Date();
它会自动填充实例化的时间。
答案 13 :(得分:7)
第一了解java.util.Date类
1.1如何获取当前日期
import java.util.Date;
class Demostration{
public static void main(String[]args){
Date date = new Date(); // date object
System.out.println(date); // Try to print the date object
}
}
1.2如何使用getTime()方法
import java.util.Date;
public class Main {
public static void main(String[]args){
Date date = new Date();
long timeInMilliSeconds = date.getTime();
System.out.println(timeInMilliSeconds);
}
}
这将返回自格林威治标准时间1970年1月1日00:00:00以来的毫秒数,以进行时间比较。
1.3如何使用SimpleDateFormat类格式化时间
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
class Demostration{
public static void main(String[]args){
Date date=new Date();
DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
String formattedDate=dateFormat.format(date);
System.out.println(formattedDate);
}
}
还尝试使用不同的格式模式,如“yyyy-MM-dd hh:mm:ss”并选择所需的模式。 http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
第二了解java.util.Calendar类
2.1使用Calendar Class获取当前时间戳
import java.util.Calendar;
class Demostration{
public static void main(String[]args){
Calendar calendar=Calendar.getInstance();
System.out.println(calendar.getTime());
}
}
2.2尝试使用setTime和其他设置方法将日历设置为不同的日期。
答案 14 :(得分:7)
对于java.util.Date,只需创建一个新的Date()
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date)); //2016/11/16 12:08:43
对于java.util.Calendar,使用Calendar.getInstance()
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal)); //2016/11/16 12:08:43
对于java.time.LocalDateTime,使用LocalDateTime.now()
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
LocalDateTime now = LocalDateTime.now();
System.out.println(dtf.format(now)); //2016/11/16 12:08:43
对于java.time.LocalDate,使用LocalDate.now()
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate localDate = LocalDate.now();
System.out.println(dtf.format(localDate)); //2016/11/16
参考:https://www.mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/
答案 15 :(得分:6)
我发现这是最好的方式:
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime())); // 2014/08/06 16:00:22
答案 16 :(得分:4)
使用:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd::HH:mm:ss");
System.out.println(sdf.format(System.currentTimeMillis()));
print语句将打印调用时的时间,而不是创建SimpleDateFormat
时的时间。因此可以在不创建任何新对象的情况下重复调用它。
答案 17 :(得分:3)
查看Date课程。还有更新的Calendar类,它是执行许多日期/时间操作的首选方法(许多日期方法已被弃用。)
如果您只想要当前日期,请创建新的Date对象或致电Calendar.getInstance();
。
答案 18 :(得分:3)
如上所述,基本的Date()可以在获取当前时间方面做到所需。在我最近与Java日期密切合作的经历中,内置类有许多奇怪之处(以及许多Date类方法的弃用)。对我而言,一个奇怪的是,从技术角度来看,几个月是0指数,但实际上可能会非常混乱。
如果你只关心应该满足的当前日期 - 但是如果你打算用日期做很多操作/计算,那么使用第三方库可能是非常有益的(因为很多Java开发人员都有这么多对内置功能不满意。
我是斯蒂芬C的第二推荐,因为我发现Joda-time在简化日期工作方面非常有用,它也有很好的文档记录,你可以在网上找到许多有用的例子。我甚至最终编写了一个静态包装类(作为DateUtils),我用它来巩固和简化所有常见的日期操作。
答案 19 :(得分:3)
随着Java 8的出现,引入了新的Data-Time API。这是应该的 以下是旧数据时API中引起的问题。
难以处理时区:需要编写大量代码来处理 时区。
非线程安全:java.util.Date不是线程安全的。
所以看看Java 8
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.time.Month;
public class DataTimeChecker {
public static void main(String args[]) {
DataTimeChecker dateTimeChecker = new DataTimeChecker();
dateTimeChecker.DateTime();
}
public void DateTime() {
// Get the current date and time
LocalDateTime currentTime = LocalDateTime.now();
System.out.println("Current DateTime: " + currentTime);
LocalDate date1 = currentTime.toLocalDate();
System.out.println("Date : " + date1);
Month month = currentTime.getMonth();
int day = currentTime.getDayOfMonth();
int seconds = currentTime.getSecond();
System.out.println("Month : " + month);
System.out.println("Day : " + day);
System.out.println("Seconds : " + seconds);
LocalDateTime date2 = currentTime.withDayOfMonth(17).withYear(2018);
System.out.println("Date : " + date2);
//Prints 17 May 2018
LocalDate date3 = LocalDate.of(2018, Month.MAY, 17);
System.out.println("Date : " + date3);
//Prints 04 hour 45 minutes
LocalTime date4 = LocalTime.of(4, 45);
System.out.println("Date : " + date4);
// Convert to a String
LocalTime date5 = LocalTime.parse("20:15:30");
System.out.println("Date : " + date5);
}
}
上述编码的输出:
Current DateTime: 2018-05-17T04:40:34.603
Date : 2018-05-17
Month : MAY
Day : 17
Seconds : 34
Date : 2018-05-17T04:40:34.603
Date : 2018-05-17
Date : 04:45
Date : 20:15:30
答案 20 :(得分:2)
Java 8或更高版本
LocalDateTime.now() and ZonedDateTime.now()
答案 21 :(得分:1)
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));
}
}
您可以将日期用于胎儿当前数据。所以使用
SimpleDateFormat
获取格式
答案 22 :(得分:1)
System.out.println( new SimpleDateFormat("yyyy:MM:dd - hh:mm:ss a").format(Calendar.getInstance().getTime()) );
//2018:02:10 - 05:04:20 PM
日期/时间与AM / PM
答案 23 :(得分:0)
我会继续把这个答案放进去,因为当我遇到同样的问题时,这就是我所需要的:
Date currentDate = new Date(System.currentTimeMillis());
currentDate
现在是您在Java Date
对象中的当前日期。
答案 24 :(得分:0)
我创建了这种方法,对我有用...
public String GetDay() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd")));
}
public String GetNameOfTheDay() {
return String.valueOf(LocalDateTime.now().getDayOfWeek());
}
public String GetMonth() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("MM")));
}
public String GetNameOfTheMonth() {
return String.valueOf(LocalDateTime.now().getMonth());
}
public String GetYear() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy")));
}
public boolean isLeapYear(long year) {
return Year.isLeap(year);
}
public String GetDate() {
return GetDay() + "/" + GetMonth() + "/" + GetYear();
}
public String Get12HHour() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("hh")));
}
public String Get24HHour() {
return String.valueOf(LocalDateTime.now().getHour());
}
public String GetMinutes() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("mm")));
}
public String GetSeconds() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("ss")));
}
public String Get24HTime() {
return Get24HHour() + ":" + GetMinutes();
}
public String Get24HFullTime() {
return Get24HHour() + ":" + GetMinutes() + ":" + GetSeconds();
}
public String Get12HTime() {
return Get12HHour() + ":" + GetMinutes();
}
public String Get12HFullTime() {
return Get12HHour() + ":" + GetMinutes() + ":" + GetSeconds();
}
答案 25 :(得分:0)
只需尝试以下代码:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CurrentTimeDateCalendar {
public static void getCurrentTimeUsingDate() {
Date date = new Date();
String strDateFormat = "hh:mm:ss a";
DateFormat dateFormat = new SimpleDateFormat(strDateFormat);
String formattedDate= dateFormat.format(date);
System.out.println("Current time of the day using Date - 12 hour format: " + formattedDate);
}
public static void getCurrentTimeUsingCalendar() {
Calendar cal = Calendar.getInstance();
Date date=cal.getTime();
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
String formattedDate=dateFormat.format(date);
System.out.println("Current time of the day using Calendar - 24 hour format: "+ formattedDate);
}
}
示例输出为:
使用日期-12小时格式的一天中的当前时间:晚上11:13:01
使用日历的一天中的当前时间-24小时格式:23:13:01
更多信息:
答案 26 :(得分:0)
您可以自己使用Date
对象和格式。作为一个例子,很难格式化并需要更多代码
Date dateInstance = new Date();
int year = dateInstance.getYear()+1900;//Returns:the year represented by this date, minus 1900.
int date = dateInstance.getDate();
int month = dateInstance.getMonth();
int day = dateInstance.getDay();
int hours = dateInstance.getHours();
int min = dateInstance.getMinutes();
int sec = dateInstance.getSeconds();
String dayOfWeek = "";
switch(day){
case 0:
dayOfWeek = "Sunday";
break;
case 1:
dayOfWeek = "Monday";
break;
case 2:
dayOfWeek = "Tuesday";
break;
case 3:
dayOfWeek = "Wednesday";
break;
case 4:
dayOfWeek = "Thursday";
break;
case 5:
dayOfWeek = "Friday";
break;
case 6:
dayOfWeek = "Saturday";
break;
}
System.out.println("Date: " + year +"-"+ month + "-" + date + " "+ dayOfWeek);
System.out.println("Time: " + hours +":"+ min + ":" + sec);
输出:
Date: 2017-6-23 Sunday
Time: 14:6:20
正如您所看到的,这是您可以做到的最糟糕的方式,根据oracle文档,它是deprecated。
Oracle doc:
类Date表示特定的时刻,以毫秒为单位 精度。
在JDK 1.1之前,Date类有两个附加功能。它 允许将日期解释为年,月,日,小时,分钟, 和第二个值。它还允许格式化和解析日期 字符串。不幸的是,这些功能的API不适合 国际化。从JDK 1.1开始,Calendar类应该是 用于在日期和时间字段与DateFormat类之间进行转换 应该用于格式化和解析日期字符串。相应的 不推荐使用Date中的方法。
因此,您可以使用Calendar
类,
Calendar.YEAR;
//and lot more
要获取当前时间,您可以使用:
Calendar rightNow = Calendar.getInstance();
文档:
与其他区域设置敏感的类一样,
Calendar
提供了一个类方法,getInstance
,用于获取此类普遍有用的对象。 Calendar的getInstance
方法返回其日历的Calendar
对象 已使用当前日期和时间初始化字段
以下代码仅获取日期
Date rightNow = Calendar.getInstance().getTime();
System.out.println(rightNow);
此外,Calendar
类具有子类。 GregorianCalendar
是其中一个Calendar
的具体子类,它提供了世界上大多数人使用的标准日历系统。
使用GregorianCalendar
的示例:
Calendar cal = new GregorianCalendar();
int hours = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
int ap = cal.get(Calendar.AM_PM);
String amVSpm;
if(ap == 0){
amVSpm = "AM";
}else{
amVSpm = "PM";
}
String timer = hours + "-" + minute + "-" + second + " " +amVSpm;
System.out.println(timer);
您可以使用SimpleDateFormat
,简单快捷的格式化日期:
String pattern = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String date = simpleDateFormat.format(new Date());
System.out.println(date);
阅读此Jakob Jenkov tutorial: Java SimpleDateFormat。
正如其他人所提到的,当我们需要从日期进行操作时,我们没有简单和最好的方式,或者我们对内置的API,API不满意。
例如,当我们需要get different between two dates时,我们需要compare two dates(there is in-built method also for this)等等。我们不得不使用第三方库。其中一个好的和受欢迎的是Joda Time.
同时阅读:
JodaTime
. 。 最幸福的事情是现在(在Java 8中),没有人因任何原因需要下载和使用库。获取当前日期和时间的简单示例Java 8中的时间,
LocalTime localTime = LocalTime.now();
System.out.println(localTime);
//with time zone
LocalTime localTimeWtZone = LocalTime.now(ZoneId.of("GMT+02:30"));
System.out.println(localTimeWtZone);
其中一个good blog post to read about Java 8 date。
请记住以了解有关Java日期和时间的更多信息,因为您可以获得/使用更多方法和/或有用的方法。
修改强>
根据@BasilBourque的评论,java.util.Date
,java.util.Calendar
和java.text.SimpleTextFormat
这些麻烦的旧日期时间类现在是legacy,取而代之的是{{3} }}
答案 27 :(得分:0)
使用Java 8的当前日期: 首先,让我们使用java.time.LocalDate获取当前系统日期:
LocalDate localDate = LocalDate.now();
要获取其他任何时区的日期,我们可以使用LocalDate.now(ZoneId):
LocalDate localDate = LocalDate.now(ZoneId.of("GMT+02:30"));
我们还可以使用java.time.LocalDateTime获取LocalDate的实例:
LocalDateTime localDateTime = LocalDateTime.now();
LocalDate localDate = localDateTime.toLocalDate();