del*_*ego 411
只需构造一个Date没有任何参数的新对象; 这会将当前日期和时间分配给新对象.
import java.util.Date;
Date d = new Date();
Run Code Online (Sandbox Code Playgroud)
分配一个Date对象并对其进行初始化,使其表示分配时间,测量精确到毫秒.
确保你正在使用java.util.Date而不是java.sql.Date- 后者没有零参数构造函数,并且有一些不同的语义,这是完全不同的对话的主题.:)
cdm*_*kay 58
许多人认为Java Date和Calendar类的设计很差.您应该看看Joda Time,这是一个通常用来代替Java内置日期库的库.
DateTime.Now在Joda Time中相当于:
DateTime dt = new DateTime();
Run Code Online (Sandbox Code Playgroud)
更新
正如评论中所述,最新版本的Joda Time有一个DateTime.now()方法,所以:
DateTime dt = DateTime.now();
Run Code Online (Sandbox Code Playgroud)
Bas*_*que 34
Instant.now()
Run Code Online (Sandbox Code Playgroud)
java.util.Date类已经被Java 8及更高版本中的新java.time包(教程)所取代.旧的java.util.Date/.Calendar类是出了名的麻烦,令人困惑和有缺陷的.避免他们.
ZonedDateTime获取java.time中的当前时刻.
ZonedDateTime now = ZonedDateTime.now();
Run Code Online (Sandbox Code Playgroud)
一个ZonedDateTime包囊:
如果未指定时区,则会以静默方式分配JVM的当前默认时区.最好指定所需/预期的时区,而不是默认依赖.
ZoneId z = ZoneId.of( "Pacific/Auckland" );
ZonedDateTime zdt = ZonedDateTime.now( z );
Run Code Online (Sandbox Code Playgroud)
通常更好地养成在UTC时区完成后端工作(业务逻辑,数据库,存储,数据交换)的习惯.上面的代码隐式依赖于JVM的当前默认时区.
本Instant类代表在UTC时间线与纳秒的分辨率的时刻.
Instant instant = Instant.now();
Run Code Online (Sandbox Code Playgroud)
该Instant班是java.time一个基本构建块级和可在代码中经常使用.
当您需要更灵活的格式化时,转换为OffsetDateTime.指定一个ZoneOffset对象.对于UTC,请使用UTC的便捷常量.
OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC );
Run Code Online (Sandbox Code Playgroud)
您可以轻松调整到另一个时区以呈现给用户.使用适当的时区名称,不要使用3-4个字母代码,例如EST或IST.
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime nowMontreal = instant.atZone( z );
Run Code Online (Sandbox Code Playgroud)
生成该日期时间值的字符串表示,已本地化.
String output = DateTimeFormatter
.ofLocalizedDate( FormatStyle.FULL )
.withLocale( Locale.CANADA_FRENCH )
.format ( nowMontreal );
Run Code Online (Sandbox Code Playgroud)
Instant或者,要保持UTC,请使用Instant.一个Instant对象表示在时间轴上一会儿,以纳秒的分辨率,总是在UTC.这为分区日期时间提供了构建块,并提供了时区分配.您可以通过这种方式在概念上考虑它:
你可以Instant从a中提取一个ZonedDateTime.
Instant instantNow = zdt.toInstant();
Run Code Online (Sandbox Code Playgroud)
你可以从一个瞬发开始.无需在此处指定时区,因为Instant始终使用UTC.
Instant now = Instant.now();
Run Code Online (Sandbox Code Playgroud)
ral*_*lph 16
我更喜欢使用Calendar对象.
Calendar now = GregorianCalendar.getInstance()
Run Code Online (Sandbox Code Playgroud)
我觉得使用它要容易得多.您还可以从日历中获取Date对象.
http://java.sun.com/javase/6/docs/api/java/util/GregorianCalendar.html
Vit*_*nko 14
在Java 8中它是:
ZonedDateTime dateTime = ZonedDateTime.now();
Run Code Online (Sandbox Code Playgroud)
Cha*_*tni 12
import java.util.Date;
Date now = new Date();
Run Code Online (Sandbox Code Playgroud)
请注意,Date对象是可变的,如果你想做任何复杂的事情,请使用jodatime.
import org.joda.time.DateTime;
DateTime now = DateTime.now();
Run Code Online (Sandbox Code Playgroud)
如果您创建一个新的Date对象,默认情况下它将设置为当前时间:
import java.util.Date;
Date now = new Date();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
377798 次 |
| 最近记录: |