ロケールのデフォルト形式で秒なしの時刻を出力したいと考えています。getTimeInstance()
だから私はorでフォーマッタを取得しgetTimeInstance(int style)
ます。しかし、SHORT
スタイルを使用する場合でも、時間の秒部分も含まれます。
(ロケールのデフォルトではなく、手動で維持される独自のフォーマットを作成する以外に)デフォルトを取得して秒を分割する方法はありますか?
ありがとう
ローマン
ロケールのデフォルト形式で秒なしの時刻を出力したいと考えています。getTimeInstance()
だから私はorでフォーマッタを取得しgetTimeInstance(int style)
ます。しかし、SHORT
スタイルを使用する場合でも、時間の秒部分も含まれます。
(ロケールのデフォルトではなく、手動で維持される独自のフォーマットを作成する以外に)デフォルトを取得して秒を分割する方法はありますか?
ありがとう
ローマン
DateFormat.getTimeInstance( DateFormat.SHORT ) は、ここでは完全に正常に機能します: 20:00:00から20:00まで、および8:00:00 PM から 8:00 PM まで。
編集:これは不十分です(以下の最初のコメントで述べたように)。私は歴史のためにこれをここに保持し、他の人が同様の方法で応答しないようにします:)
現在の形式を文字列として保存し、文字列の部分文字列メソッドを使用して手動で秒を削除することを検討しましたか?
誰かがこれを読んでいて、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
を含む他の多くの日付と時刻のクラスで機能します。LocalDateTime
OffsetDateTime
OffsetTime
ZonedDateTime
DateTimeFormatter
Android で言及されている他のクラスを使用するには、 ThreeTenABPが必要です。この質問の方法の詳細: How to use ThreeTenABP in Android Project . Android Java 6 または 7 以外の場合は、ThreeTen Backportを使用します。