Cor*_*chi 13 java datetime jodatime java-8
如何使用java将java.util.Date转换为String
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss")
Run Code Online (Sandbox Code Playgroud)
我得到的Date对象被传递
DateTime now = new DateTime(date);
Run Code Online (Sandbox Code Playgroud)
ass*_*ias 20
如果您使用的是Java 8,则不应该java.util.Date首先使用(除非您Date从无法控制的库中接收对象).
在任何情况下,您都可以将a转换Date为java.time.Instant使用:
Date date = ...;
Instant instant = date.toInstant();
Run Code Online (Sandbox Code Playgroud)
由于您只对日期和时间感兴趣,没有时区信息(我假设一切都是UTC),您可以将该瞬间转换为LocalDateTime对象:
LocalDateTime ldt = instant.atOffset(ZoneOffset.UTC).toLocalDateTime();
Run Code Online (Sandbox Code Playgroud)
最后你可以打印出来:
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
System.out.println(ldt.format(fmt));
Run Code Online (Sandbox Code Playgroud)
或者使用预定义的格式化程序DateTimeFormatter.ISO_LOCAL_DATE_TIME.
System.out.println(ldt.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
Run Code Online (Sandbox Code Playgroud)
请注意,如果您不提供格式化程序,则调用ldt.toString会以标准ISO 8601格式(包括毫秒)提供输出- 这可能是您可以接受的.
小智 8
java.util.Date date = new java.util.Date(System.currentTimeMillis());
Instant instant = date.toInstant();
LocalDateTime ldt = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
System.out.println(ldt.format(fmt));
Run Code Online (Sandbox Code Playgroud)
ΦXo*_*a ツ -1
因为我假设您正在使用 joda API:因此,DateTimeFormatter 来自org.joda.time.format.DateTimeFormatter:
String dateTime = "02-13-2017 18:20:30";
// Format for input
DateTimeFormatter dtf = DateTimeFormat.forPattern("MM-dd-yyyy HH:mm:ss");
// Parsing the date
DateTime jodatime = dtf.parseDateTime(dateTime);
System.out.println(jodatime );
Run Code Online (Sandbox Code Playgroud)