7

Joda-Timeを使用して、ミリ秒が含まれる場合と含まれない場合がある日付のリストを表示したいと思います。特定のエントリにミリ秒がある場合は、のように表示されますyyyy MM dd HH:mm:ss.SSS。ミリがない場合は、として表示する必要がありますyyyy MM dd HH:mm:ss

一般的な質問は次のとおりです。オプションのフォーマット文字列パラメータを記述する方法はありますか?

(これは大きなコードベースであるため、フォーマッターを使用するすべての場所をリファクタリングすることは避けたいと思います。)

4

1 に答える 1

18

私の知る限り、オプションのパターンはありません。しかし、あなたは自分の問題を考えすぎているのではないかと思います。

// Sample variable name - you'd probably name this better.
public static DateTimeFormat LONG_FORMATTER = DateTimeFormatter.forPattern("yyyy MM dd HH:mm:ss.SSS");

// Note that this could easily take a DateTime directly if that's what you've got.
// Hint hint non-null valid date hint hint.
public static String formatAndChopEmptyMilliseconds(final Date nonNullValidDate) {
    final String formattedString = LONG_FORMATTER.print(new DateTime(nonNullValidDate));
    return formattedString.endsWith(".000") ? formattedString.substring(0, formattedString.length() - 4) : formattedString;
}

長さは部分文字列(テストされていないコード)に対して正確に正しくない可能性がありますが、あなたはその考えを理解します。

于 2010-05-11T03:09:31.340 に答える