首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有“:mm:ss”模式的解析日期

具有“:mm:ss”模式的解析日期
EN

Stack Overflow用户
提问于 2018-08-17 05:47:26
回答 3查看 4.6K关注 0票数 0

我面临着“yyyy:mm:ss”日期解析模式的奇怪行为。下面是我的密码。

代码语言:javascript
复制
    public static void main(String[] args) throws Exception {
        System.out.println(parseDate("2018-08-16 11:00:00"));
        System.out.println(parseDate("2018-08-16 12:00:00"));
        System.out.println(parseDate("2018-08-16 13:00:00"));
    }

    public static Date parseDate(String date) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        return sdf.parse(date);
    }

我得到了下面的输出

清华8月16日11:00:2018年世界协调时 清华8月16日:2018年世界协调世界时 清华8月16日13:00:2018年世界协调世界时

我不明白为什么“2018-16: 00:00:00”的第二个输出是清华8月16 :00:00:00 2018年,而不是清华8月16 : 12:00:00 :2018年。

查看来自这里的日期解析模式的文档。上面写着

H上午/下午->小时(1-12)

有人能解释一下吗?感谢你的期待。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-17 07:23:40

你换了一条线

代码语言:javascript
复制
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

代码语言:javascript
复制
DateFormat writeFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");

小时日期格式如下所示,

代码语言:javascript
复制
kk :- Hours in 1-24 format
hh :- hours in 1-12 format
KK :- hours in 0-11 format
HH :- hours in 0-23 format
票数 0
EN

Stack Overflow用户

发布于 2018-08-17 06:06:46

希望这能有所帮助

代码语言:javascript
复制
public static void main(String[] args) throws Exception {
    System.out.println(parseDate("2018-08-16 11:00:00 AM"));
    System.out.println(parseDate("2018-08-16 12:00:00 PM"));
    System.out.println(parseDate("2018-08-16 13:00:00 AM"));
}

public static Date parseDate(String date) throws Exception {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
    return sdf.parse(date);
}

输出

Thu Aug 16 11:00:00 IST 2018 Thu Aug 16 12:00:00 IST 2018 Thu Aug 16 13:00:00 IST 2018

票数 0
EN

Stack Overflow用户

发布于 2018-08-17 06:20:28

您应该使用H而不是hh来表示Hour in day (0-23)

TestP:

代码语言:javascript
复制
public class TestP{
    public static void main(String[] args) throws Exception {
        System.out.println(parseDate("2018-08-16 11:00:00"));
        System.out.println(parseDate("2018-08-16 12:00:00"));
        System.out.println(parseDate("2018-08-16 13:00:00"));
        System.out.println(parseDate("2018-08-16 23:00:00"));
    }

    public static Date parseDate(String date) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd H:mm:ss");
        return sdf.parse(date);
    }
}

输出:

代码语言:javascript
复制
Thu Aug 16 11:00:00 CLST 2018
Thu Aug 16 12:00:00 CLST 2018
Thu Aug 16 13:00:00 CLST 2018
Thu Aug 16 23:00:00 CLST 2018

博士:SimpleDateFormat

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51889089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档