簡體   English   中英

格式化日期字符串以在JAVA中刪除時間

[英]Format date string to remove time in JAVA

例如,字符串值為:

15/08/2013 15:30 GMT+10:00 

我想將上述字符串的格式設置為Java中的15/08/2013 (刪除時間部分,僅保留日期)。

我該如何格式化?

刪除時間部分,僅保留日期

String dateString= "15/08/2013 15:30 GMT+10:00";
String result  = dateString.split(" ")[0];

那給你15/08/2013

我猜不需要格式化。

2018年

由於現在是2018年,並且我們在Java 8+中具有日期/時間API(以及ThreeTen Backport ),因此您可以執行以下操作...

String text = "15/08/2013 15:30 GMT+10:00";
LocalDateTime ldt = LocalDateTime.parse(text, DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm z", Locale.ENGLISH));
System.out.println(ldt);

// In case you just want to do some "date" manipulation, without the time component
LocalDate ld = ldt.toLocalDate();
// Will produce "2013-08-15"
//String format = ldt.format(DateTimeFormatter.ISO_LOCAL_DATE);
String format = ldt.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
System.out.println(format);

原始答案

一種方法是將String日期解析為Date對象,然后根據需要簡單地設置格式

String text = "15/08/2013 15:30 GMT+10:00";
SimpleDateFormat inFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm z");
Date date = inFormat.parse(text);
System.out.println(date);

SimpleDateFormat outFormat = new SimpleDateFormat("dd/MM/yyyy");
String formatted = outFormat.format(date);
System.out.println(formatted);

這有保留的日期/時間信息的好的效益Date ,你應該想在其他的東西;)

有關更多詳細信息,請參見SimpleDateFormat

如果只不過您有一個包含15/08/2013 15:30 GMT+10:00的字符串,而您只想要日期部分(即字符串的前10個字符),那么我只取前10個字符 無需解析並將其格式化為日期:

String input = "15/08/2013 15:30 GMT+10:00";
String result = input.substring(0, 10);

查看DateFormat類, http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

您應該能夠使用解析器在日期中進行解析,然后以另一種模式寫出所需的格式

即新的SimpleDateFormat(“ dd / MM / yyyy hh:mm z”)用於入站

新的SimpleDateFormat(“ dd / MM / yyyy”)用於更新的格式

DateFormat formatter = new SimpleDateFormat(format);
Date date = (Date) formatter.parse(dateStr);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM