如何将时间字符串值转换为日期格式
Posted
技术标签:
【中文标题】如何将时间字符串值转换为日期格式【英文标题】:How to convert time string value in date format 【发布时间】:2018-03-13 03:30:03 【问题描述】:我面临的问题是,我有一个数据表,其中有一个字符串值,如 123459,这是一个时间,我还有另一列,我在其中添加值加上 5 秒。 当我添加值时,它的添加为 123464 而不是 123504。 谁能帮我解决这个问题?
【问题讨论】:
Parse clock time in java 8 的可能重复项。或How to format a double value as time。 我没有投反对票。如果您想知道否决票和关闭投票,我怀疑它们是因为您没有表现出任何搜索和研究工作,也没有尝试自己解决您的问题。你应该这样做。它通常为我们提供了一个更好的起点来帮助您,所以这对您自己有利。 【参考方案1】:使用 Java 8 及更高版本中内置的 java.time 类。见Oracle Tutorial。
具体来说,LocalTime
和 DateTimeFormatter
类。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HHmmss");
LocalTime localTime = LocalTime.parse("123459", formatter);
LocalTime timeIn5Seconds = localTime.plusSeconds(5);
System.out.println(timeIn5Seconds.format(formatter));
输出
123504
【讨论】:
【参考方案2】:将字符串转换为日期格式...
DateFormat formatter = new SimpleDateFormat("hh:mm:ss a");
Date date = (Date)formatter.parse(str);
增加 5 秒
Calendar cal = Calendar.getInstance(); // creates calendar
cal.setTime(date); // sets calendar time/date according to the OBJECT
cal.add(Calendar.SECOND, 5); // adds 5 SECONDS
cal.getTime();
【讨论】:
仅供参考,麻烦的旧日期时间类,如java.util.Date
、java.util.Calendar
和 java.text.SimpleDateFormat
现在是 legacy,被 Java 8 和 Java 中内置的 java.time 类所取代9. 见Tutorial by Oracle。
请不要教年轻人使用SimpleDateFormat
类。它不仅过时已久(与Calendar
和date
一样),而且还出了名的麻烦。而今天我们在java.time, the modern Java date and time API 的表现要好得多。以上是关于如何将时间字符串值转换为日期格式的主要内容,如果未能解决你的问题,请参考以下文章