java datetime now_相当于C#的DateTime.Now在Java中?

问题

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

在C#中它是DateTime.Now。

#1 热门回答(405 赞)

只需构建一个没有任何参数的new206​​66728对象;这会将当前日期和时间分配给新对象。

import java.util.Date;

Date d = new Date();

分配一个Date对象并对其进行初始化,使其表示分配时间,测量精确到毫秒。

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

#2 热门回答(58 赞)

许多人认为JavaDate和Calendar类的设计很差。你应该看看Joda Time,这是一个通常用来代替Java的内置日期库的库。

相当于Joda Time的2667683664是:

DateTime dt = new DateTime();

更新

正如评论中所述,最新版本的Joda Time有aDateTime.now()方法,因此:

DateTime dt = DateTime.now();

#3 热门回答(29 赞)

#tl;博士

Instant.now()

#java.time

Java 8及更高版本中的newjava.time package(Tutorial)已经过时了java.util.Date类。旧的java.util.Date/.Calendar类是出了名的麻烦,令人困惑和有缺陷的。避免他们。

#ZonedDateTime

获取java.time中的当前时刻。

ZonedDateTime now = ZonedDateTime.now();

AZonedDateTimeencapsulates:

日期。

时间,分辨率为几分之一秒到纳秒。

时区。

如果未指定时区,则会以静默方式分配JVM的当前默认时区。最好指定所需/预期的时区,而不是默认依赖。

ZoneId z = ZoneId.of( "Pacific/Auckland" );

ZonedDateTime zdt = ZonedDateTime.now( z );

世界标准时间

通常更好地养成所有inUTC时区的后端工作(业务逻辑,数据库,存储,数据交换)的习惯。上面的代码隐式依赖于JVM的当前默认时区。

Instantclass表示UTC时间轴中的一个时刻,分辨率为纳秒。

Instant instant = Instant.now();

Instantclass是java.time中的基本构建块类,可以在代码中经常使用。

如果你需要更灵活的格式化,请转换为OffsetDateTime。指定aZoneOffset对象。对于UTC,请使用handyconstant for UTC。

OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC );

时区

你可以轻松调整到另一个时区以呈现给用户。使用aproper time zone name,neverthe 3-4字母代码,如EST或IST。

ZoneId z = ZoneId.of( "America/Montreal" );

ZonedDateTime nowMontreal = instant.atZone( z );

生成该日期时间值的字符串表示,已本地化。

String output = DateTimeFormatter

.ofLocalizedDate( FormatStyle.FULL )

.withLocale( Locale.CANADA_FRENCH )

.format ( nowMontreal );

#即时

或者,要保持UTC,请使用Instant。 AnInstantobject代表时间轴上的一个时刻,达到纳秒分辨率,始终为UTC。这为分区日期时间提供了构建块,并提供了时区分配。你可以通过这种方式在概念上考虑它:

ZonedDateTime = Instant ZoneId

你可以从aZonedDateTime中提取3119722017。

Instant instantNow = zdt.toInstant();

你可以从一个瞬发开始。此处无需指定时区,因为Instant始终为UTC。

Instant now = Instant.now();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值