java编辑:如何更改日期对象的日期格式?
我已使用以下查询在SQLite数据库中创建了表:
create table table_name(
id integer primary key autoincrement,
name varchar(450) not null,
date date)
我通过以下代码插入值(问题简化):
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
Date tmpDate = dateFormat.parse("2014/01/12");
values.put(columnKey, tmpDate.toString());
db.insert("table_name", null, values);
从数据库中再次获取行“date”的值后,我得到以下错误:
java.text.ParseException: Unparseable date: "Sun Jan 12 00:00:00 EST 2014" (at offset 0)
如果我以yyyy/MM/dd格式保存日期,它不应该以相同的格式存储吗? 谢谢你的建议
编辑: 我不知道为什么,但在这之后:
DatePicker tmpDatePicker = (DatePicker) dateDialog.findViewById(R.id.date_picker);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date tmpDate = dateForma.parse("2014-01.12");
tmpDate.toString();
输出为2014年美国东部时间1月12日星期日00:00:00。 我怎样才能改变它
# 1 楼答案
Your own answer是正确的
但是我必须说java。util。日期日历和java。文本SimpleDataFormat类是出了名的麻烦。大多数人都乐于避免使用Joda-Time(或者Java8中的新java.time包,但不使用Android)
Joda-Time2.3提供了一个^{} 类,只用于处理日期,没有时间段或时区
默认情况下,Joda Time使用ISO 8601标准方式格式化日期时间值的字符串表示形式,这显然是您所寻求的。如果需要,Joda Time也可以使用本地化或自定义格式
您可以与java进行转换。util。其他类/框架所需的日期
当运行时
# 2 楼答案
我想出来了。方法将格式设置为2014年东部时间1月12日00:00:00。 要获得SimpleDataFormat构造函数模式中给定的格式,我需要使用:
产量为2014-01-12