如何打印DateTime值

时间:2017-06-01 12:54:53

标签: java datetime jodatime datetime-format

我有这段代码,我想把时间打印成字符串,而不是日期和时间之间的'T'字符。

String datetime4 =new StringBuilder().append(date4).append(time4).toString();

DateTime newdt=new  DateTime(datetime4);
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss");
newdt = formatter.parseDateTime(datetime4);
System.out.println(newdt);

请注意date4time4是String变量。 它会打印出来:

2017-11-04T11:23:00.000+02:00

3 个答案:

答案 0 :(得分:2)

一种方法:

    String date4 = "2017-02-02";
    String time4 = "12:00:00";

    //To parse it to Temporal object
    DateTime dateTime = DateTime.parse(date4 +"T"+ time4);

    // to output it as String in a prefered format (Thanks @Hugo)
    System.out.println(dateTime.toString("yyyy-MM-dd HH:mm:ss"));

如果您更喜欢Java 8,我需要使用格式化程序,LocalDateTime不会以与JodaTime相同的方式重载toString。

但不确定你为什么要这样做?似乎只是附加日期和时间就足够了?无论如何,如果你想解析你需要把它作为一个有效的日期时间格式传递到DateTime所需的日期以及如果使用Java8将它传递给LocalDateTime,那么你可以根据需要重新格式化。

String date4 = "2017-02-02";
String time4 = "12:00:00";

LocalDateTime dateTime = LocalDateTime.parse(date4 +"T"+ time4);

System.out.println(dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));

答案 1 :(得分:1)

使用Java 8 LocalDateTime;

LocalDateTime dateTime;

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss");
DateTimeFormatter desiredFormat = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");
dateTime = LocalDateTime.parse("2017-06-01T12:10:10", formatter);
System.out.println(desiredFormat.format(dateTime));

答案 2 :(得分:1)

当你这样做时:

System.out.println(newdt);

您正在打印newdt变量,内部println会在对象上调用toString()方法。

由于此变量的类型为DateTime,因此此代码输出newdt.toString()的结果。 Datetime.toString()方法使用包含“T”的默认格式。

如果您希望输出String具有不同的格式,您可以执行以下操作:

System.out.println(newdt.toString("yyyy-MM-dd HH:mm:ss"));

输出将是:

  

2017-11-04 11:23:00

(没有“T”)

您可以将此toString版本与DateTimeFormatter接受的任何模式一起使用。

您还可以为所需格式创建另一个DateTimeFormatter

DateTimeFormatter withoutT = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(withoutT.print(newdt));

输出结果相同,由您自行选择。