【问题标题】:How to remove the SECONDS field from a DateFormat如何从 DateFormat 中删除 SECONDS 字段
【发布时间】:2013-07-26 16:32:34
【问题描述】:

我想以区域设置的默认格式打印不带秒的时间。 所以我得到了带有getTimeInstance()getTimeInstance(int style) 的格式化程序。但即使我使用 SHORT 样式,它也会包含时间的秒部分。

有没有什么办法(除了创建我自己的格式,这将不是语言环境默认值并手动维护)我可以获取默认值并拆分秒数?

谢谢

罗马

【问题讨论】:

    标签: java android localization date-format


    【解决方案1】:

    DateFormat.getTimeInstance(DateFormat.SHORT) 在这里工作得很好:从 20:00:0020:00 以及从 8:00:00 PM 到 8:00 PM

    【讨论】:

    • 读到这里,我想知道我是否没有尝试过这个(或者我做错了什么);当然,这在纯 Java(至少 7)和 Android 中有效。谢谢你让我重温这个
    【解决方案2】:

    编辑:这是不够的(如下面的第一条评论所述)。为了历史的缘故,我将其保留在这里,并防止其他人以类似的方式做出回应:)


    您是否考虑过将当前格式保存为字符串并使用 String 的子字符串方法手动删除秒数?

    【讨论】:

    • 这还不够。一种语言环境可以使用HH:mm:ss,然后您希望将其设为HH:mm(并因此删除: 分隔符),而其他语言环境可以使用HH 'h' m 'min.' s 'sec.',而您希望将其设为HH 'h' m 'min.'。你会删除什么?
    • 啊,完全误解了这个问题。删除:)
    • 看看 Joda Date Time API,它比 JDK Date 和 Time 类更简单高效 - joda-time.sourceforge.net
    • @tech-idiot +1 为 JodaTime。与 Android 一起使用时请注意这一点 (stackoverflow.com/questions/5059663/…)
    • 感谢指向 Joda Date Time 的指针,但仅用于格式化这似乎有点过头了;我也需要这个 android (只在标签中提到)所以提到的 Android 问题可能不是一个选项。好指针,不过
    【解决方案3】:

    如果有人正在阅读本文并且使用 Java 8 或更高版本,或者对(良好且面向未来的)外部库很好:

        DateTimeFormatter noSeconds = DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT)
                .withLocale(Locale.ITALY);
        LocalTime time = LocalTime.now(ZoneId.systemDefault());
        System.out.println(time.format(noSeconds));
    

    这是刚刚打印出来的:

    15.26
    

    请用您想要的语言环境代替Locale.ITALY。使用 Locale.getDefault() 作为 JVM 的语言环境设置。我相信它在所有语言环境中都可以毫不费力地打印出来。

    在代码中我使用了LocalTime 对象,但相同的代码适用于许多其他日期和时间类,包括LocalDateTimeOffsetDateTimeOffsetTimeZonedDateTime

    要使用DateTimeFormatter 和Android 上提到的任何其他类,您需要ThreeTenABP。有关如何在this question: How to use ThreeTenABP in Android Project 中的更多详细信息。对于任何非 Android Java 6 或 7,请使用 ThreeTen Backport

    【讨论】:

      猜你喜欢
      • 2014-10-13
      • 2016-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多