[英]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年,並且我們在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”)用於更新的格式
嘗試使用SimpleDateFormat類: http : //docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html
DateFormat formatter = new SimpleDateFormat(format);
Date date = (Date) formatter.parse(dateStr);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.