java - 我想在 Java 中获取格式化的日期

标签 java date simpledateformat

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

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

我不能这样做,因为今天是一个日期format 返回一个String。我也试过:

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

}

这不是一个好的解决方案,因为当我尝试在其他地方使用 today 时,Java 会提示 today 可能没有被实例化。更改 Date 对象格式(同时仍将其保留为 Date 对象,而不是将其转换为字符串)的好方法是什么?

最佳答案

您看错了格式和日期。

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

因此,当您必须显示日期或必须以某种字符串表示形式存储日期时,您将使用 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

引用:

GregorianCalendar Calendar Joda Time

关于java - 我想在 Java 中获取格式化的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8703773/

相关文章:

java - 找到差异最小的回文

java - UTC 给定时区的日期和时间

java - 如何将字符串转换为格式为 yyyy-MM-dd HH :MM:ss 的日期

java - JQPL : Create new Object within the Query from multiple tables

java - Spring MVC 网站管理/配置页面的推荐数据模型和数据源?

java - 如何将现有文件导入 IntelliJ 10 IDE?

android - SimpleDateFormat 日期错误

java - 将 java fx 日期选择器日期与查询中的 sql 日期进行比较

c# - 哈希集删除旧实例

java - 某些区域设置中的 AM/PM 符号与预期不符