簡體   English   中英

使用正則表達式格式化字符串日期

[英]Format String date with regex

我有代表日期201510251010 2015/10/25 10:10的字符串201510251010 我想用第二種格式獲取日期為String。

我有以下代碼:

 String myString = "201510151235";
 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm");
 SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
 Date d = dateFormat.parse(myString);
 String s = dateFormat2.format(d);

它有效,但是我認為這是丑陋的代碼。 有沒有辦法用正則表達式和replaceAll或類似的東西做同樣的事情?

您可以嘗試

String myString = "201510151235";
String formatted = myString.replaceAll("(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})", 
                                       "$1-$2-$3 $4:$5");
                                  //or "$1/$2/$3 $4:$5"); 

但我懷疑它看起來比您的可讀性更好,並且它肯定不如SimpleDateFormat安全。

對於日期,AFAIK最好使用日期時間對象而不是正則表達式來解析它們,因為通過這種方式,您還可以支持不同的文化日期,否則對於不同的文化,模式可能會有所不同。 因此,您的方式對我來說看起來不錯。

暫無
暫無

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

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