2012-09-26 60 views
0

美好的一天可愛的人獲取我的日誌軌跡的確切時間和日期

請幫兄弟出來。那麼我是一個視覺基礎的高手,但在Java中讓我寧願不說。

在VB這裏有我的方法:

  1. System.DateTime.Now.ToLongTimeString()
  2. System.DateTime.Now.ToString()+ 「/」 + System.DateTime.Now.Month的ToString()+ 「/」 + System.DateTime.Now.Year.ToString()

第一種方法將返回準確的時間例如=上午12時08分36秒

而第二個方法會返回確切的日期eg = 2012/09/2 6

我想要得到同樣的結果,但使用java.How做我去這樣做。

哦預先感謝。

回答

0

來獲取表示當前日期的對象,你可以只使用new Date(),格式化它,使用SimpleDateFormat

+0

非常感謝你,我會研究一下。 – Lazarus

3

在.NET中,DateTime.Now爲您提供本地日期和時間,在您當地的時區。

如果使用new Date()或Java中的一樣,它會給你不具有時區的認識價值。假以時日區考慮,您應該創建一個Calendar具有正確的時區,或者如果你想創建一個適當的字符串,你應該使用SimpleDateFormat - 再次,設置格式化之前正確的時區。例如:

SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd", Locale.US); 
format.setTimeZone(...); // Whichever time zone you want 
String text = format.format(new Date()); // "now" 

還要注意的是Joda Time是日期/時間比一個更好的Java API內置CalendarDate類。

最後,你的.NET代碼示例第二部分是越野車 - 你應該只評估DateTime.Now一次;最好只是傳入格式字符串,例如DateTime.Now.ToString("yyyy/MM/dd")。即使你想每一位爲一個字符串轉換分開,但是,你一旦獲取值局部變量,然後再用它。否則,如果您在午夜左右執行該代碼,則日期可能會發生變化 - 例如,如果您在2013年初的之前執行了,則最終可能會得到一串「2012/12/1」或「2012/1/1「,這兩者都不是正確的。

+0

尊敬的先生喬恩Skeet.Thank你非常的幫助和建議,我將最certainlly調查。 – Lazarus

1

使用java.text.SimpleDateFormat類格式化日期和new java.util.Date()將創建一個實例系統日期默認。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); 
SimpleDateFormat dateFormat1 = new SimpleDateFormat("hh:mm:ss a"); 
System.out.println(dateFormat.format(new Date)); //2012/09/26 
System.out.println(dateFormat1.format(new Date)); //12:08:36 AM 
+0

非常,非常非常感謝。你一直在幫助很大。我在評論中提到了謝謝你。如果我沒有感謝你。 – Lazarus