【问题标题】:Is it possible to get java.util.Date object with specific format?是否可以获得具有特定格式的 java.util.Date 对象?
【发布时间】:2013-10-06 09:47:12
【问题描述】:

想请教一下java.util.Date的用法。这是我的示例类

         public class DateConverter {
           public static void main(String[] args) {
                  SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy");
                  Date today = new Date();
                  String dateAsString_format = simpleDateFormat.format(today);
                  System.out.println("Formatted Date String (String datatype): " + dateAsString_format);
                  Date parsedDate = null;
                  try {
                      parsedDate = simpleDateFormat.parse(dateAsString_format);
                  } catch (ParseException e) {
                      e.printStackTrace();
                  }
                  System.out.println("Parse Date (Date datatype): " + parsedDate);
               }
            }

我的输出是

         Formatted Date String (String datatype): 06/10/2013
         Parse Date (Date datatype): Sun Oct 06 00:00:00 MMT 2013

但我想得到以下输出

         Formatted Date String (String datatype): 06/10/2013
         Parse Date (Date datatype): 06/10/2013

是否可以获取特定格式的 Date 对象?

【问题讨论】:

  • 如果您想要特定格式,请使用 SimpleDateFormat。这就是它的用途。 Date 只有基于您的语言环境的默认平台格式。

标签: java date simpledateformat


【解决方案1】:

是的,扩展 Date 添加格式字段并覆盖 toString 方法,类似于

public class DateWithFormat extends Date {
   String format; // Assign as appropriate
   public String toString() {
     return new SimpleDateFormat(format).format(this));
   } 
}

【讨论】:

    【解决方案2】:

    是否可以获取特定格式的 Date 对象?

    没有。 Date 没有任何格式。它表示自纪元以来的毫秒数。您只能使用 SimpleDateFormat 获取格式化字符串,您已经这样做了。

    打印Date 调用重写的Date#toString() 方法,该方法使用默认格式,其中打印每个Date

    Date#toString() 源代码如下所示:

    public String toString() {
        // "EEE MMM dd HH:mm:ss zzz yyyy";
        BaseCalendar.Date date = normalize();
        StringBuilder sb = new StringBuilder(28);
        int index = date.getDayOfWeek();
        if (index == gcal.SUNDAY) {
            index = 8;
        }
        ....  // some more code
    }
    

    所以使用的格式是"EEE MMM dd HH:mm:ss zzz yyyy"

    【讨论】:

      猜你喜欢
      • 2020-11-12
      • 1970-01-01
      • 2013-08-25
      • 1970-01-01
      • 2011-05-09
      • 2014-10-05
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多