美好的一天可爱的人
请帮助一个兄弟。嗯,我是视觉基础的大师,但在java中让我不要说。
在VB中这是我的方法:
第一种方法将返回确切的时间,例如上午12:08:36
第二种方法将返回确切日期,例如= 2012/09/26
我想得到相同的结果,但是使用java.How我会这样做。
哦,先谢谢。
答案 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是一个比内置Calendar
和Date
类更好的日期/时间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。