
java yyyyMMddHHmmssSSS字符串的日期解析
1.以下类型的日期字符串我知道怎么解析:"20161012"(yyyyMMdd),"2016-10-12"(yyyy-MM-dd),"2016-10-1210:00"(y...
1.以下类型的日期字符串我知道怎么解析:"20161012"( yyyyMMdd),"2016-10-12"( yyyy-MM-dd),"2016-10-12 10:00"( yyyy-MM-dd HH:mm)这些都可以将日期字符串dateStr,使用replaceAll("[^\\d]+","")来转换解析的格式。2.现在想解析以下格式的字符串:"2016 9 8"(yyyy MM dd),"2016 9 8 10:1 1"(yyyy MM dd HH:mm ss)这些每项都有分隔符,每项值不一定足够位数,不够的位数的项在前面加0补够。
感谢网友提供意见,现在已经解决了,跟原来的思路不太一样了。
以下格式都是可以的:20161012,20161012 10:01,20161012 10:01 10,20161012 10:02 10 555
最后代码太长只能贴图了。 展开
感谢网友提供意见,现在已经解决了,跟原来的思路不太一样了。
以下格式都是可以的:20161012,20161012 10:01,20161012 10:01 10,20161012 10:02 10 555
最后代码太长只能贴图了。 展开
1个回答
展开全部
这玩艺要用正则表达式
public static void main(String argv[]) {
String ds = "2016 9 8 10:1 1"; //(yyyy MM dd HH:mm ss)
Pattern p = Pattern.compile("^(\\d*)\\s(\\d*)\\s(\\d*)\\s(\\d*):(\\d*)\\s(\\d*)" , Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(ds);
if (m.matches()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
System.out.println(m.group(3));
System.out.println(m.group(4));
System.out.println(m.group(5));
System.out.println(m.group(6));
}
}
更多追问追答
追答
这个正则只是针对 //(yyyy MM dd HH:mm ss)格式的,其它格式,你还需要自己调整。
写函数时候,先设置好各种格式对应的正则表达式,
依次判断m.matches()是否是true,来确认是否解析成功。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询