【问题标题】:Format Date object without String?格式化没有字符串的日期对象?
【发布时间】:2012-08-29 15:03:23
【问题描述】:

我有一个日期对象(1999 年 12 月 31 日星期五 00:00:00 CET),我只想显示 31-12-1999。

而且我不想使用字符串对象来显示我需要用日期对象显示的信息。

你有解决这个问题的办法吗?

【问题讨论】:

  • 显示 字符串(或至少某种字符序列)
  • String 和 Date 实际上都不显示任何内容。它们是不同类型数据的容器。 System.out.prinln 等显示事物,System.out.println 显示字符串。
  • 如果没有String,您将无法找到任何 方式来显示任何内容。

标签: java


【解决方案1】:

使用java.text.SimpleDateFormat

SimpleDateFormat dateFormatter = new SimpleDateFormat("dd-MM-yyyy");
String formattedDate = dateFormatter.format(dateInstance);

【讨论】:

    【解决方案2】:

    您可以将日期作为文本直接写入可以写入 IO 设备的 ByteBuffer。例如,这可用于加快日志记录。

    使用时区转换日期的逻辑非常复杂,但是我建议您使用标准库或 JodaTime 来转换日期,因为它不值得自己尝试编写。

    出于这个原因,我将时间直接写入 ByteBuffer 并使用 SimpleDateFormat 为日期生成缓存字符串(因为它每天只更改一次)

    如果要显示到 GUI,则必须使用字符串,因为 GUI 使用的是字符串。

    【讨论】:

      【解决方案3】:

      您的意思是您需要从 Date 对象中删除时间信息吗?你可以这样做。

      Date d; // this is your date 
      Date dateWithoutTime = new Date(d.getYear(), d.getMonth(), d.getDay());
      

      【讨论】:

        猜你喜欢
        • 2023-04-07
        • 1970-01-01
        • 2011-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-28
        相关资源
        最近更新 更多