是否可以使用 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/