java - monthOfYear 的解析器模式不是零填充且没有文字文本分隔

标签 java jodatime

是否可以使用 jodatime 解析日期 8302011?在一种不那么痛苦的格式中,它看起来像 8/30/2011,我将其模式化为 MM/dd/yyyy

我尝试过的:

  • 模式 Mddyyyy
    • 8302011 -> 无法解析“8302011”:monthOfYear 的值 83 必须在 [1,12] 范围内
    • 12302011 -> 2011-12-30T00:00:00.000Z

幸运的是,日期没有歧义,因为 day 始终表示为两位数。但是,月份是一位数或两位数。

我意识到将左边的零填充到 8 个字符会很简单,但在这种情况下,我无法做到这一点。

最佳答案

我知道下面的内容与 jodatime 不同,但是您可以尝试使用 SimpleDateFormat 来解析日期作为替代日期吗

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by luan on 9/12/16.
 */
public class DateTimeFormatTest {
    public SimpleDateFormat simpleDateFormat = new SimpleDateFormat("Mddyyyy");
    public SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("MM/dd/yyyy");

    public Date getDate(String source){
        Date date = null;
        try {
            date = simpleDateFormat.parse(source);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        return date;
    }
    public String parseStringValue(Date date){
        String result = "";
        result = simpleDateFormat2.format(date);
        return result;
    }

    public static void main(String[] args) {
        DateTimeFormatTest obj = new DateTimeFormatTest();
        Date date = obj.getDate("8302011");
        System.out.println(date);
        String result = obj.parseStringValue(date);
        System.out.println(result);
    }
}

输出:

Tue Aug 30 00:00:00 ICT 2011
08/30/2011

关于java - monthOfYear 的解析器模式不是零填充且没有文字文本分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30946008/

相关文章:

java - Java 中的 ISO 8601 时间间隔解析

java - 在java中连接计算税率的类

java - 将arraylist从一个 Activity 传递到另一个 Activity 的 fragment

java - MongoDB搜索大数据采集

java - 在 onDataChange 方法中从登录 Activity 移动到下一个 Activity 时应用程序崩溃

java - Jodatime - 定制年表

JavaScript Date 对象总是在 America/New_York 时区打印?

java - 尝试转换 yyyy-MM-ddTHH :mm:ss-07:00 to correct time in Android

java - 为什么 withWeekOfWeekyear 给我不同的偏移量?

java - 尝试为单个 ListView 单元格设置样式时遇到困难,例如聊天应用程序