关于datetime:如何在Java中获取当前日期/时间

How to get the current date/time in Java

在Java中获取当前日期/时间的最佳方式是什么?


这取决于您想要什么形式的日期/时间:

  • 如果您希望日期/时间为一个单独的数值,则EDCOX1 OR 1提供给您,表示为UNIX时代之后的毫秒数(作为Java EDCOX1(2))。该值是从UTC时间点算起的增量,与本地时区无关…假设系统时钟设置正确。

  • 如果希望日期/时间的格式允许您以数字形式访问组件(年、月等),则可以使用以下其中之一:

    • new Date()提供了一个用当前日期/时间初始化的Date对象。问题是DateAPI方法大多存在缺陷…并表示蔑视。

    • Calendar.getInstance()给您一个用当前日期/时间初始化的Calendar对象,使用默认的LocaleTimeZone。其他重载允许您使用特定的Locale和/或TimeZone。日历工作…但是这些API仍然很麻烦。

    • new org.joda.time.DateTime()提供了一个使用当前日期/时间初始化的joda时间对象,使用默认时区和时间。有很多其他的乔达选择…这里描述的太多了。(但请注意,有些人报告joda time存在性能问题;例如,第一次使用jodatime时,其localdatetime很慢。)

    • 在Java 8中,调用EDCOX1、13和EDCOX1 14将给出当前日期/时间的代表1。

在Java 8之前,大多数知道这些事情的人都建议JoDA时间(最好)是最好的Java API来做涉及时间点和持续时间计算的事情。用Java 8,这不再是真的。但是,如果您已经在代码库中使用了Joda时间,那么没有强2的理由进行迁移。

1-请注意,localdatetime不包括时区。正如JavaDoc所说:"如果没有诸如偏移量或时区之类的附加信息,它就不能在时间线上表示一个瞬间。"

2-如果你不这样做,你的代码就不会被破坏,你也不会得到拒绝警告。当然,Joda代码库可能会停止获取更新,但不太可能需要它们。没有更新意味着稳定,这是件好事。还要注意的是,如果有人解决Java平台中的回归问题,很有可能。


如果您只需要以YYYY.MM.DD-HH.MM.SS(非常频繁的情况)格式输出时间戳,那么可以使用以下方法:

1
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());


如果要将当前日期作为字符串,请尝试以下操作:

1
2
3
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date));

1
2
3
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-caller/


在Java 8中,它是:

1
LocalDateTime.now()

如果您需要时区信息:

1
ZonedDateTime.now()

如果要打印花哨的格式化字符串:

1
System.out.println(ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME))


只需创建一个日期对象…

1
Date date = new Date();


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
    // 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() );


tl博士.

1
Instant.now()                                         // Capture the current moment in UTC, with a resolution of nanoseconds.

或……………………………………

好吧。

1
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.time答案提到的是,现代的troublesome更换为旧遗产日期-时间与最早的bundled类的Java版本。下面是一个比特的信息。

好吧。

enter image description here

好吧。 时间区

其他答案不会是一个时间区crucial不能解释如何在determining当前的日期和时间。对于任何给定的日期和时间一刻,全球各地由不同的区。例如,几分钟后,他是一个新的一天在巴黎法国而仍然被"昨天"在魁北克蒙特利尔。

好吧。 Instant

多的业务逻辑和你的数据存储在GMT /交换应该是做的,作为一个最佳实践。获得当前的刻在nanoseconds GMT与分辨率打印,使用Instant类。

好吧。

1
Instant instant = Instant.now();

ZonedDateTime

你可以adjust,Instantzones成其他时间。一个面向对象的应用ZoneIdZonedDateTime获得。

好吧。

1
2
ZoneId z = ZoneId.of("America/Montreal" );
ZonedDateTime zdt = instant.atZone( z );

我们可以跳过的Instant和当前的ZonedDateTime直接测量得到。

好吧。

1
ZonedDateTime zdt = ZonedDateTime.now( z );

时间总是过的,optional argument Zone。如果你omitted,jvm安装默认的是当前的时间带中的应用。安装默认可以在任何刻的变化,甚至在runtime。你的应用程序不安全学科大externality离开你的控制。总是来指定的desired /预计时间区。

好吧。

1
ZonedDateTime do_Not_Do_This = ZonedDateTime.now(); // BAD - Never rely implicitly on the current default time zone.

你可以从ZonedDateTimeInstant后来extract安全。

好吧。

1
Instant instant = zdt.toInstant();

总是使用一个安全的InstantZonedDateTime煤或相当安全LocalDateTime当你想刻对实际的时间表。有没有purposely Local…类型的概念的时间比他们代表区只一个粗糙的想法的一个可能的一刻。你必须获得一个实际的安全区assign刻时间变换成一个大的Local…类型ZonedDateTime和thereby使它有意义。

好吧。 LocalDate

LocalDate类代表的日期-时间只有一天的无价值的和无时间区。

好吧。

1
2
ZoneId z = ZoneId.of("America/Montreal" );
LocalDate today = LocalDate.now( z );  // Always pass a time zone.

字符串

的统一,也产生一个大的弦乐代表的日期-时间价值的呼唤,是对toStringjava.time类为8601 formats ISO的标准。

好吧。

1
String output = myLocalDate.toString();  // 2016-09-23

或……………………………………

好吧。

1
String output = zdt.toString();  // 2016-09-23T12:34:56.789+03:00[America/Montreal]

ZonedDateTime类扩展的标准格式,由wisely appending名字区在广场的时间值。

好吧。

为其他formats搜索堆栈溢出,对于许多问题和答案对DateTimeFormatter类。

好吧。 avoid LocalDateTime

contrary的评论对这个问题由ramansb不使用LocalDateTime类,你应该为当前的日期时间。

好吧。

缺乏任何时间的LocalDateTimepurposely区或粒状-信息-从GMT。所以,这是不合适的,当你是一个刻在跟踪具体的时间表。肯定是不合适的,为地捕获当前的一刻。

好吧。

"本地"的措辞是反直觉的。它指的是任何一个地方,而不是任何一个特定的地方。例如,今年的圣诞节从12月25日午夜开始:以东十一〔0〕,表示为以东十一〔1〕。但这意味着全球各地不同时间的午夜。午夜首先发生在基里巴斯,后来发生在新西兰,几个小时之后发生在印度,等等,在法国圣诞节开始前还有几个小时过去了,那时加拿大的孩子们还在等着那一天。这些圣诞节起点中的每一个都将被表示为一个单独的ZonedDateTime。好的。从系统外部

如果您不能信任系统时钟,请参阅Java:从服务器非系统时钟获取当前日期和时间,以及我的答案。好的。

photo of a couple of external radio clock devices好的。java.time.Clock

要利用当前时刻的备用供应商,请编写抽象java.time.Clock类的子类。好的。

您可以将Clock实现作为参数传递给各种java.time方法。例如,Instant.now( clock )。好的。

1
Instant instant = Instant.now( yourClockGoesHere ) ;

出于测试目的,请注意Clock本身静态提供的Clock的替代实现:fixedoffsettick等。好的。关于JavaTimes

JavaTimeFr框架是在Java 8和之后构建的。这些类取代了麻烦的旧遗留日期时间类,如java.util.DateCalendarSimpleDateFormat。好的。

现在处于维护模式的joda time项目建议迁移到java.time类。好的。

要了解更多信息,请参阅Oracle教程。以及搜索堆栈溢出以获得许多示例和解释。规格为JSR 310。好的。

您可以直接与数据库交换java.time对象。使用符合JDBC 4.2或更高版本的JDBC驱动程序。不需要字符串,不需要java.sql.*类。好的。

在哪里获取java.time类?好的。

  • Java SE 8、Java SE 9及以后
    • 内置的。
    • 标准JAVA API的一部分与捆绑实现。
    • Java 9添加了一些小的特性和修复。
  • Java SE 6和Java SE 7
    • 大部分JavaTimeActudio都被移植到TealEnter后端的Java 6和7中。
  • 安卓
    • java.time类的Android包实现的更高版本。
    • 对于早期的android,threetenabp项目适应threeten backport(如上所述)。看看如何使用三连珠……

threeten额外项目使用额外的类扩展java.time。这个项目是将来可能添加到java.time的一个试验场。您可以在这里找到一些有用的类,如IntervalYearWeekYearQuarter等等。好的。好啊。


用途:

1
2
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
System.out.println(timeStamp );

(工作)


有许多不同的方法:

  • System.CurrentTimeMillis()。
  • 日期
  • 历法


创建日期对象并简单地打印下来。

1
2
Date d = new Date(System.currentTimeMillis());
System.out.print(d);

你看过java.util.date吗?这正是你想要的。


类似于上述解决方案。但我总是在寻找这段代码:

1
2
Date date=Calendar.getInstance().getTime();
System.out.println(date);

1
java.util.Date date = new java.util.Date();

它会自动填充实例化的时间。


首先了解java.util.date类

1.1如何获取当前日期

1
2
3
4
5
6
7
8
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()方法

1
2
3
4
5
6
7
8
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 GMT用于时间比较。

1.3如何使用simpledateformat类格式化时间

1
2
3
4
5
6
7
8
9
10
11
12
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使用日历类获取当前时间戳

1
2
3
4
5
6
7
8
import java.util.Calendar;

class Demostration{
    public static void main(String[]args){
        Calendar calendar=Calendar.getInstance();
        System.out.println(calendar.getTime());
    }
}

2.2尝试使用设置时间和其他设置方法将日历设置为不同的日期。

资料来源:http://javau91.blogspot.com/


对于java.util.date,只需创建一个新的日期()。

1
2
3
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()。

1
2
3
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()。

1
2
3
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()。

1
2
3
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-calendar/


我觉得这是最好的方法:

1
2
3
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

用途:

1
2
SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd::HH:mm:ss");
System.out.println(sdf.format(System.currentTimeMillis()));

print语句将打印调用它的时间,而不是创建SimpleDateFormat的时间。因此,可以在不创建任何新对象的情况下重复调用它。


如前所述,基本日期()可以根据需要获取当前时间。在我最近大量使用Java日期的经验中,内置的类有很多奇怪之处(以及许多DealC类方法的贬低)。在我看来,有一点很奇怪,那就是月份是以0指数为基础的,从技术角度来说,这是有道理的,但从实际情况来看,可能会非常混乱。

如果你只关心当前的日期就足够了——然而,如果你打算对日期进行大量的操作/计算,那么使用第三方库可能是非常有益的(因为许多Java开发人员对内置的功能不满意),所以存在很多。

我赞同StephenC的建议,因为我发现Joda Time在简化我的日期工作方面非常有用,它也有很好的文档记录,您可以在整个Web中找到许多有用的示例。最后我甚至编写了一个静态包装类(作为dateutils),用于合并和简化所有常见的日期操作。


看看日期课。还有更新的日历类,它是执行许多日期/时间操作的首选方法(许多日期方法已被弃用)。

如果只需要当前日期,那么可以创建一个新的日期对象或调用Calendar.getInstance();


New Data-Time API is introduced with the dawn of Java 8. This is due
to following issues that were caused in the old data-time API.

Difficult to handle time zone : need to write lot of code to deal with
time zones.

Not Thread Safe : java.util.Date is not thread safe.

所以用Java 8来看看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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);
    }
}

以上编码输出:

1
2
3
4
5
6
7
8
9
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


1
2
3
4
5
6
7
8
9
10
11
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));
   }
}

you can use date for fet current data. so using SimpleDateFormat get format


1
2
 System.out.println( new SimpleDateFormat("yyyy:MM:dd - hh:mm:ss a").format(Calendar.getInstance().getTime()) );
    //2018:02:10 - 05:04:20 PM

上午/下午的日期/时间


我创造了这个方法,它对我有用…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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();
}

您可以自己使用Date对象和格式。很难格式化,需要更多的代码,例如,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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);

输出:

1
2
Date: 2017-6-23 Sunday
Time: 14:6:20

正如您所看到的,这是最糟糕的方法,根据Oracle文档,它已被弃用。

Oracle文档:

The class Date represents a specific instant in time, with millisecond
precision.

Prior to JDK 1.1, the class Date had two additional functions. It
allowed the interpretation of dates as year, month, day, hour, minute,
and second values. It also allowed the formatting and parsing of date
strings. Unfortunately, the API for these functions was not amenable
to internationalization. As of JDK 1.1, the Calendar class should be
used to convert between dates and time fields and the DateFormat class
should be used to format and parse date strings. The corresponding
methods in Date are deprecated.

因此,您也可以使用Calendar类,

1
2
Calendar.YEAR;
//and lot more

要获取当前时间,可以使用:

1
Calendar rightNow = Calendar.getInstance();

Doc:

Like other locale-sensitive classes, Calendar provides a class method,
getInstance, for getting a generally useful object of this type.
Calendar's getInstance method returns a Calendar object whose calendar
fields have been initialized with the current date and time

以下代码用于获取唯一日期

1
2
Date rightNow = Calendar.getInstance().getTime();
System.out.println(rightNow);

另外,Calendar类也有子类。GregorianCalendarCalendar的一个具体的子类,它提供了世界上大多数人使用的标准日历系统。

使用GregorianCalendar的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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,简单快捷地格式化日期:

1
2
3
4
5
String pattern ="yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

String date = simpleDateFormat.format(new Date());
System.out.println(date);

阅读Jakob Jenkov教程:Java SimuleDead格式。

正如其他人提到的,当我们需要从日期开始进行操作时,我们没有简单和最好的方法,或者我们不能满足于内置类、API。

例如,当我们需要在两个日期之间取得不同的时候,当我们需要比较两个日期(也有内置的方法)以及更多的时候。我们不得不使用第三方图书馆。其中一个好的和流行的是乔达时间。

还请阅读:

  • 如何在joda time中正确获取当前日期和时间?
  • jodatime-如何以UTC格式获取当前时间
  • JodaTime的示例。
  • 下载JoDA

.现在最开心的事情(在Java 8中),没有人需要下载和使用任何原因的库。在Java 8中获取当前日期和时间的简单示例

1
2
3
4
5
6
LocalTime localTime = LocalTime.now();
System.out.println(localTime);

//with time zone
LocalTime localTimeWtZone = LocalTime.now(ZoneId.of("GMT+02:30"));
System.out.println(localTimeWtZone);

一个不错的博客帖子,关于Java 8的日期阅读。

并保持MeReMebe更多地了解Java日期和时间,因为有更多的方法和/或有用的方法可以使用/使用。

  • Oracle日期和时间教程。
  • 格式化程序的Oracle教程。
  • 课程:标准日历。

编辑:

根据@basilbourque评论,像java.util.Datejava.util.Calendarjava.text.SimpleTextFormat这样麻烦的旧日期时间类现在是遗产,被java.time类取代。


我会继续回答这个问题,因为当我有同样的问题时,我只需要这个答案:

1
Date currentDate = new Date(System.currentTimeMillis());

EDCOX1,0,}现在是Java EDCOX1 1对象中的当前日期。