SimpleDateFormat对相同日期字符串的解析和格式给出了不同的结果

尼尔斯

我有一个简单的任务,就是将格式为“ 2014-06-13”的日期转换为格式为“ 2013年1月6日”

SimpleDateFormat为此声明了两个对象:

private SimpleDateFormat mInputFormat = new SimpleDateFormat("yyyy-MM-DD", Locale.ENGLISH);
private SimpleDateFormat mOutputFormat = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH);

因此,我编写了代码来做到这一点:

Log.v(TAG, "orig: " + releaseDate);
try {
    Date date = mInputFormat.parse(releaseDate); // create a date object using the first pattern
    Log.v(TAG, "parsed:" + mInputFormat.format(date));
    String newDate = mOutputFormat.format(date); // format the date object into the new format
    Log.v(TAG, newDate);
    aq.id(R.id.text_2).text(newDate); // sets the date
} catch (ParseException e) {
    e.printStackTrace();
}

事实是,日期已经完全过了。这是记录在日志上的内容:

09-15 20:07:49.035: V/TwoLinerListItemView(26700): orig: 2014-06-13
09-15 20:07:49.035: V/TwoLinerListItemView(26700): parsed:2014-01-13
09-15 20:07:49.035: V/TwoLinerListItemView(26700): January 13, 2014

我对为什么这些结果如此不同感到困惑。首先,使用输入格式将原始字符串2014-06-13解析为日期对象。然后,我使用完全相同的inputdate格式对结果字符串进行了格式化,然后更改了日期。就像您解析字符串“ 1”,然后将其变为整数2,然后将整数重新生成为字符串时,其变为3。

鸦片

您在第一种格式中使用了大D:

     new SimpleDateFormat("yyyy-MM-DD", Locale.ENGLISH);

但是D是一年中的一天。您必须使用dd,即每月的天数。更改为:

     new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

NSDateFormatter不同日期的相同字符串

DateTimeFormatter 和 SimpleDateFormat 使用相同的输入字符串产生不同的结果

使用具有不同日期格式的电话将字符串转换为日期

将日期转换为具有不同日期格式的ios的字符串?

如何从具有不同日期格式字符串的列中提取年份

Python如何检查多个字符串值的不同日期格式

如何比较以字符串格式给出的日期和时间?

SimpleDateFormat的解析字符串的日期是错误

SimpleDateFormat解析非日期字符串

当我使用矩进行解析时,Moment.js 2个不同的日期字符串给出相同的值

如何解析不同的字符串日期格式?

PHP和Ruby上的相同代码给出了不同的结果

python 2和3的相同代码给出了不同的结果

不同格式的两个相同日期给出不同的纪元时间

为什么字符串中的Javascript日期不同于Date对象中的相同日期

如何正确格式化DateTimePicker中的日期字符串以通过SimpleDateFormat进行解析?

为什么使用SimpleDateFormat从字符串中解析日期时得到错误的结果?(Java)

如何在 BigQuery 的標準 SQL 中解析具有不同日期字符串的列中的值

有没有办法将具有不同日期格式的日期 varchar 字符串转换为 MySQL 日期格式?

为什么相同字符串的java String.length与python len()给出不同的结果

Lockbox3 cryptostring:相同的字符串给出不同的加密结果

“相同”字符串的不同断言结果

DateFormatter将字符串解析为日期给出错误的格式

将不同格式的字符串更改为数据框中相同格式的日期

解析日期字符串并更改格式

无法使用 SimpleDateFormat 解析字符串日期

日期字符串在SimpleDateFormat中的解析不正确

DateTimeFormatter无法解析日期字符串,但SimpleDateFormat能够

如何将字符串解析为日期并返回为相同格式的字符串