java datetime now_相当于C#的DateTime.Now在Java中?
問題
如何在Java中獲取當(dāng)前日期?
在C#中它是DateTime.Now。
#1 熱門回答(405 贊)
只需構(gòu)建一個沒有任何參數(shù)的new206??66728對象;這會將當(dāng)前日期和時間分配給新對象。
import java.util.Date;
Date d = new Date();
分配一個Date對象并對其進(jìn)行初始化,使其表示分配時間,測量精確到毫秒。
確保你使用的是java.util.Date而不是java.sql.Date--后者沒有零參數(shù)構(gòu)造函數(shù),并且有一些不同的語義,這是完全不同的對話的主題。 :)
#2 熱門回答(58 贊)
許多人認(rèn)為JavaDate和Calendar類的設(shè)計很差。你應(yīng)該看看Joda Time,這是一個通常用來代替Java的內(nèi)置日期庫的庫。
相當(dāng)于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)已經(jīng)過時了java.util.Date類。舊的java.util.Date/.Calendar類是出了名的麻煩,令人困惑和有缺陷的。避免他們。
#ZonedDateTime
獲取java.time中的當(dāng)前時刻。
ZonedDateTime now = ZonedDateTime.now();
AZonedDateTimeencapsulates:
日期。
時間,分辨率為幾分之一秒到納秒。
時區(qū)。
如果未指定時區(qū),則會以靜默方式分配JVM的當(dāng)前默認(rèn)時區(qū)。最好指定所需/預(yù)期的時區(qū),而不是默認(rèn)依賴。
ZoneId z = ZoneId.of( "Pacific/Auckland" );
ZonedDateTime zdt = ZonedDateTime.now( z );
世界標(biāo)準(zhǔn)時間
通常更好地養(yǎng)成所有inUTC時區(qū)的后端工作(業(yè)務(wù)邏輯,數(shù)據(jù)庫,存儲,數(shù)據(jù)交換)的習(xí)慣。上面的代碼隱式依賴于JVM的當(dāng)前默認(rèn)時區(qū)。
Instantclass表示UTC時間軸中的一個時刻,分辨率為納秒。
Instant instant = Instant.now();
Instantclass是java.time中的基本構(gòu)建塊類,可以在代碼中經(jīng)常使用。
如果你需要更靈活的格式化,請轉(zhuǎn)換為OffsetDateTime。指定aZoneOffset對象。對于UTC,請使用handyconstant for UTC。
OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC );
時區(qū)
你可以輕松調(diào)整到另一個時區(qū)以呈現(xiàn)給用戶。使用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代表時間軸上的一個時刻,達(dá)到納秒分辨率,始終為UTC。這為分區(qū)日期時間提供了構(gòu)建塊,并提供了時區(qū)分配。你可以通過這種方式在概念上考慮它:
ZonedDateTime = Instant ZoneId
你可以從aZonedDateTime中提取3119722017。
Instant instantNow = zdt.toInstant();
你可以從一個瞬發(fā)開始。此處無需指定時區(qū),因為Instant始終為UTC。
Instant now = Instant.now();
總結(jié)
以上是生活随笔為你收集整理的java datetime now_相当于C#的DateTime.Now在Java中?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习java周期_Java第一作业周期总
- 下一篇: delphi与java 类型转换_jav