小编典典

我想用Java获取格式化的日期

java

我想获取一个新Date对象并对其SimpleDateFormat应用。我想做类似的事情:

SimpleDateFormat myFormat = new SimpleDateFormat("dd MMM yyyy kkmm");
Date today = new Date();
today = myFormat.format(today);

我无法执行此操作,因为今天是Date,并且format返回String。我也尝试过:

Date today;
SimpleDateFormat myFormat = new SimpleDateFormat("dd MMM yyyy kkmm");
try{
    today = myFormat.parse((new Date()).toString());
}catch(Exception e){

}

这不是一个很好的解决方案,因为当我今天尝试在其他地方使用Java时,它抱怨今天可能尚未实例化。什么是更改Date对象格式的好方法(同时仍将其保留为Date对象,而不是将其转换为字符串)?


阅读 253

收藏
2020-11-26

共1个答案

小编典典

您正在错误地查看格式和日期。

  • 日期不包含格式。日期只是一个包含日期信息的类,例如日期,月份,小时,秒等。
  • SimpleDateFormat是一种告诉您Date的字符串表示形式的格式。但是没有日期与之相关。

因此,想法是当您必须显示日期或必须以某种字符串表示形式存储日期时,将使用SimpleDateFormat并将所需的字符串表示形式传递给它。

*这样做的 *好处
是,我可以使用相同的Date对象,并且可以显示两个不同的字符串表示形式(使用两个不同的SimpleDateFormat实例)。反之亦然,定义了一个SimpleDateFormat实例后,我可以格式化多个日期。

编辑:

现在,如果您想从日期中删除一些信息。用

Calendar rightNow = Calendar.getInstance();
Calendar cal = new GregorianCalendar(
   rightNow.get(YEAR),
   rightNow.get(MONTH),
   rightNow.get(DAY_OF_MONTH));
Date now = cal.getTime();

还有像JodaTime这样的优质产品

参考:

阳历
日历
乔达时间

2020-11-26