获取我的日志跟踪的确切时间和日期

时间:2012-09-26 09:46:02

标签: java

美好的一天可爱的人

请帮助一个兄弟。嗯,我是视觉基础的大师,但在java中让我不要说。

在VB中这是我的方法:

  1. System.DateTime.Now.ToLongTimeString()
  2. System.DateTime.Now.ToString()+“/”+ System.DateTime.Now.Month.ToString()+“/”+ System.DateTime.Now.Year.ToString()
  3. 第一种方法将返回确切的时间,例如上午12:08:36

    第二种方法将返回确切日期,例如= 2012/09/26

    我想得到相同的结果,但是使用java.How我会这样做。

    哦,先谢谢。

3 个答案:

答案 0 :(得分:3)

在.NET中,DateTime.Now会在您当地的时区为您提供本地日期和时间。

如果您在Java中使用new Date()等,它将为您提供一个不知道时区的值。要考虑时区,您应该创建具有正确时区的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是一个比内置CalendarDate类更好的日期/时间Java API。

最后,你在.NET中的第二段示例代码是错误的 - 你应该只评估DateTime.Now 一次;理想情况下只传入格式字符串,例如DateTime.Now.ToString("yyyy/MM/dd")。但是,即使您希望将每个位单独转换为字符串,也只需将值一次性提取到局部变量,然后重复使用它。否则,如果您在午夜左右执行该代码,则日期可能会发生变化 - 例如,如果您在 2013年开始之前执行,则最终可能会出现一串“2012/12 / 1“或”2012/1/1“两者都不正确。

答案 1 :(得分: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

答案 2 :(得分:0)

要获取代表当前日期的对象,您只需使用new Date()进行格式化,使用SimpleDateFormat