4

ロケールのデフォルト形式で秒なしの時刻を出力したいと考えています。getTimeInstance()だから私はorでフォーマッタを取得しgetTimeInstance(int style)ます。しかし、SHORTスタイルを使用する場合でも、時間の秒部分も含まれます。

(ロケールのデフォルトではなく、手動で維持される独自のフォーマットを作成する以外に)デフォルトを取得して秒を分割する方法はありますか?

ありがとう

ローマン

4

3 に答える 3

20

DateFormat.getTimeInstance( DateFormat.SHORT ) は、ここでは完全に正常に機能します: 20:00:00から20:00まで、および8:00:00 PM から 8:00 PM まで

于 2014-12-13T16:25:20.213 に答える
1

編集:これは不十分です(以下の最初のコメントで述べたように)。私は歴史のためにこれをここに保持し、他の人が同様の方法で応答しないようにします:)


現在の形式を文字列として保存し、文字列の部分文字列メソッドを使用して手動で秒を削除することを検討しましたか?

于 2013-07-26T16:44:09.090 に答える
0

誰かがこれを読んでいて、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.ITALYLocale.getDefault()JVM のロケール設定に使用します。すべてのロケールで秒単位で印刷されると思います。

コードではオブジェクトを使用しましたが、同じコードが、、およびLocalTimeを含む他の多くの日付と時刻のクラスで機能します。LocalDateTimeOffsetDateTimeOffsetTimeZonedDateTime

DateTimeFormatterAndroid で言及されている他のクラスを使用するには、 ThreeTenABPが必要です。この質問の方法の詳細: How to use ThreeTenABP in Android Project . Android Java 6 または 7 以外の場合は、ThreeTen Backportを使用します。

于 2017-06-27T13:34:29.970 に答える