2016-11-21 72 views
0

我想以特定的格式在java中打印日期时间。我有这个C#代码打印出这种格式的日期时间。在Java中以特定格式打印日期时间?

DateTime value = new DateTime(2010, 1, 18); 
Console.WriteLine(value); 
Console.WriteLine(value == DateTime.Today); 

结果是 - 2010/1/18 12:00:00 AM

现在,我想写打印出相同的格式的日期时间一个Java代码。我使用了joda.time库。这是我到目前为止所尝试的。

DateTime today = new DateTime(); 
System.out.println(today.toString(“yyyy-MMM-dd”)); 

我该如何将年,月,日作为构造函数在java中的DateTime中传递,并以上述格式打印出来。

回答

13

方法1:使用java.time.LocalDateTime。 (强烈优选

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); 
LocalDateTime now = LocalDateTime.now(); 
System.out.println(dtf.format(now)); //2016/11/16 12:08:43 

方法2:使用java.util.Date

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
Date date = new Date(); 
System.out.println(dateFormat.format(date)); //2016/11/16 12:08:43 

方法3:使用java.util.Calendar

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
Calendar cal = Calendar.getInstance(); 
System.out.println(dateFormat.format(cal)); //2016/11/16 12:08:43 
+7

我建议你反过来这样,这样'java.time'答案是第一个,因为它*强*首选(IMO)在其他两个。 –

+0

@ Wasi Ahmad: - 非常感谢。 – Farheen

+0

请注意'java.time'包只存在于JDK 8之后,所以'java.util.Date'是Java <8中的一种方式。@JonSkeet'Date'和'Calendar'之间的任何首选项? – Matthieu

3

如果需要24小时制日期,那么使用这种方法

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); 
Date custDate = new Date(); 
System.out.println(sdf.format(custDate)); 

请注意24小时制没有必要显示AM/PM。

如果你想约会12小时制,然后在下面的方法

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a"); 
Date custDate = new Date(); 
System.out.println(sdf.format(custDate)); 

使用“一”中的日期格式将有助于显示AM/PM。

请输入以下类上面的代码工作

java.text.SimpleDateFormat的

java.util.Date

2
LocalDate.of(2010, 1, 18).atStartOfDay().format(DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss a")) 

LocalDate.of(2010, 1, 18).atTime(12, 0, 0).format(DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss a")); 

如果你也想添加时间

相关问题