【问题标题】:How to set date format of a date into Date but not String?如何将日期的日期格式设置为日期而不是字符串?
【发布时间】:2014-12-15 11:04:11
【问题描述】:

这是我需要做的:

我想把 date2 改成 Date 而不是 String。

 Date date = new Date();
 DateFormat format = new SimpleDateFormat ("yyyy/MM/dd",Locale.ENGLISH);
 String date2 = format.format(date);

它不允许我将 date2 保存为日期。有人请帮助我。谢谢

【问题讨论】:

  • 你必须使用 parse 方法。然后给它字符串格式的日期。像这样format.parse("2014/12/12");
  • This answer 可能会在这里为您提供帮助。
  • 为什么接受的答案被接受了?它与问题无关。正确答案是the one by Jesper,说明由于缺乏对数据类型的理解,这个问题是无稽之谈。
  • 好吧,只是因为那个对我有帮助,而另一个我不懂。

标签: java string date date-format


【解决方案1】:

java.util.Date 对象没有格式。它们只代表一个日期值。您不能“设置Date 对象的格式”,因为Date 对象无法存储此信息。

您所问的(“如何设置Date 对象的格式”)是不可能的,因为Date 对象不是这样工作的。

您应该做的只是使用Date 对象,并在需要显示它的位置,使用SimpleDateFormat 对象将其转换为所需格式的String。

【讨论】:

  • 因为我需要我的参数需要一个日期,并且我需要格式化日期以使用所选格式保存到我的数据库中。或者我应该在实体中将日期更改为字符串。
  • @user3900009 这个答案是正确的。您的数据库应该使用日期时间数据类型,可能是 TIMESTAMP WITH TIME ZONE。您的 Java 代码应该使用日期时间数据类型。在您想向用户或您的日志显示日期时间值之前,不涉及任何字符串。在 StackOverflow 中搜索 数千个 示例。确实,发帖前一定要先搜索。
【解决方案2】:
import java.text.SimpleDateFormat;
import java.util.Date;

String your_date = "2014-12-15 00:00:00.0";
DateFormat format = new SimpleDateFormat ("yyyy/MM/dd",Locale.ENGLISH);
Date new_date = format.parse(your_date);
System.out.println(new_date);

【讨论】:

    猜你喜欢
    • 2016-06-25
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 2022-07-04
    • 2015-07-13
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多