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

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


当前回答

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

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

DateTime dt = new DateTime();

更新

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

DateTime dt = DateTime.now();

其他回答

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

import java.util.Date;

Date d = new Date();

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

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

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

java.lang.System.currentTimeMillis ();将返回自epoch以来的datetime

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

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

import org.joda.time.DateTime;

DateTime now = DateTime.now();

在Java 8中,它是:

ZonedDateTime dateTime = ZonedDateTime.now();