我正在尝试使用以下代码以所需的格式解析日期时间
date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(data);
formattedDate = new SimpleDateFormat("dd MMM''yy, HH:mm aa").format(date);
但是事情是第一次,解析大约需要35
毫秒,然后格式化大约需要15 ms
左右。
但是平均而言,如果我要解析50, 40, 30, 20, 10
日期,那么它的响应时间约为900, 750, 600, 450, 200 ms
,这也远远超出了应有的水平。
谁能告诉我为什么要花这么长时间?
是否有其他方法可以比当前方法更快?
答案 0 :(得分:0)
我尝试了很多事情,并且我认为我的解决方案是更好的性能。是使用DateTime(JodaTime)和Date librairy。 JodaTime解析文本,Date转换为文本。
这是我的代码,也是我的尝试。
@Test
public void DateTime() throws ParseException {
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
long start = System.currentTimeMillis();
DateTime dt = formatter.parseDateTime("2018-07-22 00:00:00");
String formattedDate = dt.toString("dd MMM''yy, HH:mm aa");
System.out.println(System.currentTimeMillis() - start);
System.out.println(formattedDate);
start = System.currentTimeMillis();
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2018-07-22 00:00:00");
formattedDate = new SimpleDateFormat("dd MMM''yy, HH:mm aa").format(date);
System.out.println(System.currentTimeMillis() - start);
System.out.println(formattedDate);
start = System.currentTimeMillis();
date = formatter.parseDateTime("2018-07-22 00:00:00").toDate();
formattedDate = new SimpleDateFormat("dd MMM''yy, HH:mm aa").format(date);
System.out.println(System.currentTimeMillis() - start);
System.out.println(formattedDate);
}
System.out:
545
22 Jul'18, 00:00 AM
16
22 juil.'18, 00:00 AM
0
22 juil.'18, 00:00 AM
Process finished with exit code 0
这就是为什么我认为测试3中的JodaTime和Date更好