gpt4 book ai didi

java - 已编辑 : How can I change date format of Date object?

转载 作者:行者123 更新时间:2023-12-02 05:56:34 28 4
gpt4 key购买 nike

我使用此查询在 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);

再次从数据库中获取行“日期”的值后,我收到此错误:

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。我怎样才能改变它?

最佳答案

Your own answer是正确的。

但我必须说 java.util.Date、.Calendar 和 java.text.SimpleDateFormat 类是出了名的麻烦。大多数人很高兴避免使用它们,而是使用 Joda-Time (或者 Java 8 中的新 java.time 包,但 Android 中没有)。

Joda-Time 2.3 提供LocalDate仅处理日期的类,没有时间部分或时区。

Joda-Time 默认使用 ISO 8601格式化日期时间值的字符串表示形式的标准方法,显然是您所寻求的。如果需要,Joda-Time 也可以使用本地化或自定义格式。

String input = "2014-01-12";
LocalDate localDate = new LocalDate( input );
String output = localDate.toString();

您可以根据其他类/框架的需要在 java.util.Date 之间进行转换。

java.util.Date date = localDate.toDate();
String dateAsString = date.toString();

运行时...

input: 2014-01-12
output: 2014-01-12
dateAsString: Sun Jan 12 00:00:00 PST 2014

关于java - 已编辑 : How can I change date format of Date object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23045460/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com