0

私は現在 Java でオークション プログラムを作成しています。締め切りを調整しようとしていますが、私の日付は (2013 年 7 月 4 日 11:22) のように表示され続けます。String.format を使用して先行ゼロを追加する方法はありますか? 1桁の日であるこの日付まで?

String timeOne = Server.getDateTime(itemArray.get(1).time).toString()

後で部分文字列を作成しようとすると問題が発生し、長さが 17 文字未満です。

前もって感謝します、ジェームズ。

4

2 に答える 2

5

@Leonard Brüningsの答えは正しい方法です。そして、元のコードが間違った方法である理由は次のとおりです...たとえそれが機能したとしても。

のjavadocにCalendar.toString()は次のように書かれています:

"このカレンダーの文字列表現を返します。このメソッドはデバッグ目的でのみ使用することを意図しており、返される文字列の形式は実装によって異なる場合があります。 "

基本的にtoString()、javadoc で使用すべきではないとされている目的で使用しています。からの出力を微調整したtoString()としても、コードが脆弱になる可能性があります。JVM を変更すると、それが壊れる可能性があります。ロケールを変更すると壊れる可能性があります。

于 2013-04-07T12:02:51.307 に答える
3

SimpleDateFormat を使用するだけです

import java.text.SimpleDateFormat;

Calendar timeOne = Server.getDateTime(itemArray.get(1).time)

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm")

System.out.println(sdf.format(timeOne.getTime()))
于 2013-04-07T11:48:56.653 に答える