如何在Java中获取当前日期和时间?

我正在寻找相当于DateTime的东西。现在从c#开始。


当前回答

只构造一个新的Date对象,不带任何参数;这将为新对象分配当前日期和时间。

import java.util.Date;

Date d = new Date();

用Javadocs零参数构造函数的话说:

分配Date对象并初始化它,使它表示分配的时间,测量到最近的毫秒。

确保您使用的是java.util.Date而不是java.sql.Date——后者没有零参数构造函数,并且具有一些不同的语义,这是完全不同的对话主题。:)

其他回答

import java.util.Date;   
Date now = new Date();

注意,Date对象是可变的,如果您想做一些复杂的事情,请使用jodatime。

我更喜欢使用Calendar对象。

Calendar now = GregorianCalendar.getInstance()

我觉得用起来容易多了。您还可以从Calendar中获取Date对象。

http://java.sun.com/javase/6/docs/api/java/util/GregorianCalendar.html

如果你创建了一个新的Date对象,默认情况下它将被设置为当前时间:

import java.util.Date;
Date now = new Date();

在Java 8中,它是:

ZonedDateTime dateTime = ZonedDateTime.now();

许多人认为Java Date和Calendar类设计得很糟糕。您应该看一看Joda Time,这是一个常用来代替Java内置日期库的库。

相当于DateTime。现在在Joda时间是:

DateTime dt = new DateTime();

更新

正如评论中所指出的,最新版本的Joda Time有一个DateTime.now()方法,因此:

DateTime dt = DateTime.now();