Bog*_*lan 7 java string parsing
获取字符串表示中的秒数(如"hh:mm:ss")的最佳方法是什么?
显然Integer.parseInt(s.substring(...))*3600 + Integer.parseInt(s.substring(...))*60 + Integer.parseInt(s.substring(...))有效.
但我不想测试它,并重新发明风暴,我希望有一种方法可以使用DateTimeFormat或标准库中的其他类.
谢谢!
use*_*421 14
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
Date reference = dateFormat.parse("00:00:00");
Date date = dateFormat.parse(string);
long seconds = (date.getTime() - reference.getTime()) / 1000L;
Run Code Online (Sandbox Code Playgroud)
reference
用于补偿不同的时区,夏令时没有问题,因为SimpleDateFormat不使用实际日期,它返回Epoc日期(1970年1月1日=无DST).
简化(不多):
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = dateFormat.parse("01:00:10");
long seconds = date.getTime() / 1000L;
Run Code Online (Sandbox Code Playgroud)
但我还是会看看Joda-Time ......