2

Date date3 = Calendar.getInstance().getTime(); 我正在使用这给我找到当前时间Thu Oct 25 11:42:22 IST 2012

现在我希望我的 Date 采用格式2012.10.25,并且也是 Date 对象而不是字符串。

我尝试使用下面的代码

DateFormat df = new SimpleDateFormat("yyyy.MM.dd");
Date startDate = df.parse(c_date1);

但是当我最终System.out.println(startDate.toString());再次使用它时, Thu Oct 25 00:00:00 IST 2012.这实际上是因为该toString()功能已经以一种显示这种格式的方式实现。

那么有没有其他方法可以将日期作为2012.10.25日期格式来获取。日期对象是必需的,因为它将作为日期字段保存在数据库中。

4

9 回答 9

10

您需要使用df.format(Date)方法来获取所需格式的日期

于 2012-10-25T06:22:34.957 回答
8

Date 类没有“内部”格式,它只表示日期元素。要使用特定格式输出它,您需要按照您的方式进行操作: String tDate = formatter1.format(date);

您认为它具有“错误格式”的原因可能是因为当您尝试输出它时,它默认执行一个 toString() ,它不会按照您想要的方式格式化它。

如果您向我们提供有关如何使用该日期的更多详细信息(包括您的代码),那么我们可能会提供有关如何将格式化程序注入其中的建议。

日期本身不存储任何格式信息。

于 2012-10-27T03:32:36.430 回答
3
Date date3 = Calendar.getInstance().getTime();
SimpleDateFormat df = new SimpleDateFormat("yyyy.MM.dd");
System.out.println(df.format(date3));
于 2012-10-25T06:47:49.667 回答
3
    Date date3 = Calendar.getInstance().getTime();
    SimpleDateFormat df = new SimpleDateFormat("yyyy.MM.dd");

    java.sql.Date date = null;

    try {
        date =new java.sql.Date(df.parse(df.format(date3)).getTime());
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    System.out.println(date);
于 2012-10-25T09:50:59.853 回答
3
于 2018-03-20T07:03:40.663 回答
1

如果您想以给定的日期格式将日期保存在数据库中,您可以使用

DateFormat df = new SimpleDateFormat("yyyy.MM.dd");

    Date date3 = Calendar.getInstance().getTime();

    String startDate = df.format(date3);

    try {

    java.sql.Date date = new java.sql.Date(df.parse(startDate).getTime());

    System.out.println(date);

    } catch (ParseException ex) {
      Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
    }
于 2012-10-25T07:18:28.370 回答
1

日期对象没有任何格式。即您不能将任何 Date 对象转换为特定格式。因为它有自己的字符串格式,打印任何日期时都会返回。您只能转换任何字符串格式。

您可以从特定格式的日期字符串转换或构造任何日期对象。但该日期对象不会采用特定格式。

于 2012-10-25T06:36:37.347 回答
1

你的问题就像问:

我有一个值为 1234567 的 int 变量,我希望它在该变量中存储为“1,234,567”。

这根本不合理。

值的存储方式与值的呈现方式无关。

于 2012-10-25T06:40:11.417 回答
-1

这很简单

SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd");
format.parse(dateObject.toString());
于 2018-03-20T06:12:50.143 回答