我有一个包含以下数据的查询
85343
125242
65252
125655
185658
235758
那些没有格式的24小时。我尝试用HHmmss
解析它,然后给它格式hh:mm:ss
,它的工作时间为12+但是12-它下地狱错误的时间。我用下面的代码解决了这个问题:
DateFormat dateFormat2 = new SimpleDateFormat("Hmmss");
DateFormat dateFormat21 = new SimpleDateFormat("HHmmss");
DateFormat dateFormat5 = new SimpleDateFormat("hh:mm:ss a");
System.out.println((Query.getString(1).length() == 5) ?
dateFormat5.format(dateFormat2.parse(Query.getString(1)))
: dateFormat5.format(dateFormat21.parse(Query.getString(1))));
它解决了时间错误的问题,因为我得到了正确的时间
8:53:43AM
12:52:42PM
6:52:52 AM
12:56:55 PM
6:56:58 PM
11:57:58PM
反正是为了让这更好吗?
答案 0 :(得分:0)
我不会使用两个不同的DateFormat
进行解析,而只使用一个:
DateFormat dateFormat21 = new SimpleDateFormat("HHmmss");
DateFormat dateFormat5 = new SimpleDateFormat("hh:mm:ss a");
String s = Query.getString(1);
if (s.length()==5) s = "0"+s;
System.out.println(dateFormat5.format(dateFormat21.parse(s)));
但是,除了调用getString
之外,你的代码中没有真正的问题。
答案 1 :(得分:0)
尝试使用这样的正则表达式:
(\d?\d)(\d\d)(\d\d)
匹配组1是小时,匹配组2是分钟,匹配组3是秒。
有关Java中正则表达式的更多信息,请参阅此处: http://www.regular-expressions.info/java.html