【问题标题】:JodaTime IllegalArgumentException Invalid format "yyyy-MM-dd hh:mm:ss"JodaTime IllegalArgumentException 格式无效“yyyy-MM-dd hh:mm:ss”
【发布时间】:2019-01-17 15:15:42
【问题描述】:

在发帖之前,我在以前的问题中搜索过这种格式,但我没有找到它

这是我想尝试的简单代码:

String YYYYMMDD_HHMMSS = "yyyy/MM/dd HH:mm:ss";
DateTimeFormatter yyyyMMddHHmmssFormatter = DateTimeFormat.forPattern(YYYYMMDD_HHMMSS); 
DateTime fromDate = DateTime.parse("2019-01-17 11:01:15", yyyyMMddHHmmssFormatter);

我收到了这个错误:

java.lang.IllegalArgumentException: Invalid format: "2019-01-17 11:01:15" is malformed at "-01-17 11:01:15"

我想,我必须改变一些字符串格式的东西?

感谢您的帮助

【问题讨论】:

    标签: java datetime format jodatime


    【解决方案1】:

    您应该使用格式yyyy-MM-dd HH:mm:ss 输入2019-01-17 11:01:15yyyy/MM/dd HH:mm:ss 在输入类似于2019/01/17 11:01:15 时有效。

    更新

    你需要两种格式来转换:

    DateTimeFormatter inputFormat = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"); 
    DateTimeFormatter outputFormat = DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss"); 
    DateTime fromDate = DateTime.parse("2019-01-17 11:01:15", inputFormat);
    System.out.println(outputFormat.print(fromDate));
    

    【讨论】:

    • 你的意思是这个 YYYYMMDD_HHMMSS 必须在 yyyy-MM-dd HH:mm:ss 中?
    • 谢谢,这就是我添加的内容: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); DateFormat df1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");尝试 { 日期 dDate = df.parse(getEndDate()); fromDate = DateTime.parse(df1.format(dDate), yyyyMMddHHmmssFormatter);它有效
    【解决方案2】:

    尝试改变

    String YYYYMMDD_HHMMSS = "yyyy/MM/dd HH:mm:ss";
    

    String YYYYMMDD_HHMMSS = "yyyy-MM-dd HH:mm:ss";
    

    【讨论】:

    • 如何制作格式为 yyyy/MM/dd HH:mm:ss 的结果?
    • 要使用斜杠生成结果,请使用第二个格式化程序来格式化回字符串。
    猜你喜欢
    • 2019-09-24
    • 2013-03-21
    • 2017-07-09
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    相关资源
    最近更新 更多