2017-02-13 107 views
4

我怎麼能一個java.util.Date轉換爲字符串使用java.util.date到字符串中使用DateTimeFormatter

DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss") 

Date對象,我得到的是通過

DateTime now = new DateTime(date); 
+0

請出示您的完整代碼 –

+0

可能重複:http://stackoverflow.com/questions/5683728/convert-java-util-date-to-string – Peter

+0

@PeterKuebler我想使用DateTimeFormatter –

回答

0

,因爲我asume您正在使用喬達API: ERGO,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); 
+0

@CorkKochi我希望你實際上沒有調用'new DateTime(new Date())'。 – shmosel

+0

@shmosel我發佈了答案 –

1
DateTime now = new DateTime(date); 
DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss"); 
now.toString(dtf) 
7

如果您使用的是Java 8,你不應該擺在首位使用java.util.Date(除非你收到,你有沒有控制庫中的Date對象)。

在任何情況下,你可以使用轉換Datejava.time.Instant

Date date = ...; 
Instant instant = date.toInstant(); 

既然你只在日期和時間有關,沒有時區信息(我假設一切都是UTC),你可以轉換那一瞬間,一個LocalDateTime對象:

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"); 
System.out.println(ldt.format(fmt)); 
012:

LocalDateTime ldt = instant.atOffset(ZoneOffset.UTC).toLocalDateTime(); 

最後,你可以用它打印

或者使用預定義的格式化程序DateTimeFormatter.ISO_LOCAL_DATE_TIME

System.out.println(ldt.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)); 

需要注意的是,如果你不提供格式,呼籲ldt.toString給出標準ISO 8601格式(包括毫秒)輸出 - 這可能是你可以接受的。

+0

我正在使用的服務正在返回一個java.util.Date對象 –

+0

@CorkKochi如果您*必須*使用java.util.Date對象,請按照本答覆所示進行轉換。查看添加到舊類的新轉換方法,例如['Date.from(Instant)'](https://docs.oracle.com/javase/8/docs/api/java/util/Date.html#from -java.time.Instant-)和['Date :: toInstant()'](https://docs.oracle.com/javase/8/docs/api/java/util/Date.html#toInstant--) 。 –

0

DateTimeFormatterOBJECT = DateTimeFormatter.ofPattern(「DD/MMM/YYYY HH // MM/SS」);

String MyDateAndTime = LocalDate.now()。format(DateTimeFormatterOBJECT);

+0

通過在第一行代碼中指定格式,您可以使用上述代碼獲取自己格式的簡單日期,並且還可以在第二行代碼中使用任何加號或減號日期函數; –

+0

要添加澄清到您的答案,請編輯您的答案,而不是使用評論。 – Hexfire

相關問題