ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – 格式的解析时间hh:mm:ss

2019-09-27 11:00:39  阅读:386  来源: 互联网

标签:string-parsing java date


如何解析格式hh:mm:ss的时间,作为字符串输入以获取java中的整数值(忽略冒号)?

解决方法:

根据Basil Bourque的评论,考虑到Java 8的新API,这是这个问题的更新答案:

    String myDateString = "13:24:40";
    LocalTime localTime = LocalTime.parse(myDateString, DateTimeFormatter.ofPattern("HH:mm:ss"));
    int hour = localTime.get(ChronoField.CLOCK_HOUR_OF_DAY);
    int minute = localTime.get(ChronoField.MINUTE_OF_HOUR);
    int second = localTime.get(ChronoField.SECOND_OF_MINUTE);

    //prints "hour: 13, minute: 24, second: 40":
    System.out.println(String.format("hour: %d, minute: %d, second: %d", hour, minute, second));

备注:

>由于OP的问题包含仅包含小时,分钟和秒(没有日,月等)的时间瞬间的具体示例,上面的答案仅使用LocalTime.如果想要解析也包含天,月的字符串,等等,然后需要LocalDateTime.它的用法非常类似于LocalTime.
>由于时间瞬间int OP的问题不包含任何有关时区的信息,答案使用LocalXXX版本的日期/时间类(LocalTime,LocalDateTime).如果需要解析的时间字符串也包含时区信息,则需要使用ZonedDateTime.

======以下是此问题的旧(原始)答案,使用pre-Java8 API:=====

我很抱歉,如果我对这个人感到不安,但我真的要回答这个问题. Java API非常庞大,我认为有人可能会偶尔错过一个.

SimpleDateFormat可以在这里做到这一点:

http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

它应该是这样的:

String myDateString = "13:24:40";
//SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
//the above commented line was changed to the one below, as per Grodriguez's pertinent comment:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
Date date = sdf.parse(myDateString);

Calendar calendar = GregorianCalendar.getInstance(); // creates a new calendar instance
calendar.setTime(date);   // assigns calendar to given date 
int hour = calendar.get(Calendar.HOUR);
int minute; /... similar methods for minutes and seconds

你应该知道的陷阱:

>传递给SimpleDateFormat的模式可能与我的示例中的模式不同,具体取决于您拥有的值(12小时格式或24小时格式的小时数等).请查看链接中的文档以获取详细信息
>一旦你从你的String创建一个Date对象(通过SimpleDateFormat),不要试图使用Date.getHour(),Date.getMinute()等.它们似乎有时会工作,但总的来说它们可以给出错误结果,因此现在已弃用.请使用日历,如上例所示.

标签:string-parsing,java,date
来源: https://codeday.me/bug/20190927/1823699.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有