【问题标题】:JAVA Date string without symbols [duplicate]没有符号的JAVA日期字符串[重复]
【发布时间】:2017-09-11 11:29:05
【问题描述】:

我使用 SimpleDateFormatDate 格式化为 String 不带符号 :,/,-,但它格式很奇怪。

这是我的代码:

public static String getFormatedDate(Date date, String format) {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
    return simpleDateFormat.format(date);
}

我这样称呼它:

DateUtil.getFormatedDate(new Date(), "DDMMYYYYHHMMSS")

回电不正确2540920170909379应该是这样11092017093405 = 11/09/2017 09:34:05 p>

【问题讨论】:

  • 观察那些格式模式字母的大小写。 dD 的意思不同。 yY等都不是。
  • 告诉我们,你为什么还坚持使用过时的SimpleDateFormat 类?从 Stack Overflow 上的问题数量来看,这门课似乎引起了很多混乱和麻烦。我建议你不要扔掉,而是使用the modern Java date and time API。与它一起工作要好得多。它的格式化类是DateTimeFormatter
  • 如果可能,请使用标准 ISO 8601 格式,而不是自己设计。
  • ZonedDateTime.now().format( DateTimeFormatter.ofPattern( "ddMMuuuuHHmmss" ) )

标签: java date simpledateformat


【解决方案1】:

试试下面的;

DateUtil.getFormatedDate(new Date(), "ddMMyyyyHHmmss");

完整格式见java doc

【讨论】:

  • 天哪.... 大错特错,非常感谢。
【解决方案2】:

也许错误的输出是因为你没有使用正确的date-time formatting pattern。您可以使用这些字符:

  • y = 年
  • M = 一年中的月份
  • w = 一年中的一周
  • W = 一个月中的一周
  • D = 一年中的一天
  • d = 月份中的某天
  • F = 月份中的星期几
  • E = 一周中的一天
  • a = 上午/下午标记
  • H = 一天中的小时 (0-23)
  • k = 一天中的小时 (1-24)
  • K = 上午/下午 (0-11) 小时
  • h = 上午/下午 (1-12) 小时
  • m = 分钟/小时
  • s = 以分钟为单位的秒
  • S = 毫秒

您可能希望使用此模式:ddMMyyyyHHmmss 来获取类似“日期时间”的输出。

【讨论】:

    【解决方案3】:

    然后代替

    DateUtil.getFormatedDate(new Date(), "DDMMYYYYHHMMSS")
    

    您应该提供正确的格式

    DateUtil.getFormatedDate(new Date(), "ddMMyyyyHHmmss")
    

    【讨论】:

    • 如果这对你有用,别忘了接受它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 2011-06-08
    • 1970-01-01
    • 2011-08-30
    相关资源
    最近更新 更多