1

SOからの質問の1つからこのコードをコピーしました:

public static String getCurrentTimeStamp() {
  SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  Date now = new Date();
  String strDate = sdfDate.format(now);
  return strDate;
}

日付ではなくシステム時刻のみを取得したい。次に、コードの 2 行目を次のように変更する必要があります。

SimpleDateFormat sdfDate = new SimpleDateFormat(" HH:mm:ss") ; 

次に、DATE() は現在の時刻を取得する必要があります。ここまではクリアですが、使用されている format() 関数が理解できません。nowの代わりに単純に変数を出力できないということstrdateですか?関数の戻り値の型getCurrentTimeStamp()が文字列だからですか?

明確にしてください。システム時間を単独で取得するためのより単純で1行のコードが他にある場合は、共有してください。

4

3 に答える 3

7

つまり、strdate の代わりに単純に変数を出力することはできません。

戻ることもできますが、それはたまたま選択しnow.toString()た形式を使用しますが、特定の形式が必要です。この場合のオブジェクトDate.toString()のポイントは、 (特定のカレンダーやタイム ゾーンを参照することなく、特定の時点である)を に変換し、適切なタイム ゾーン、カレンダー システム、およびテキスト形式 (この場合は ) を適用することです。 .SimpleDateFormatDateStringHH:mm:ss

ただし、ローカル変数 (それぞれ一度しか使用されない) を削除することで、メソッドをいくらか単純化することができます。

public static String getCurrentTimeStamp() {
    return new SimpleDateFormat("HH:mm:ss").format(new Date());
}

または、日付形式の変数を保持し、日付と戻り値を保持しない方が読みやすいかもしれません。

public static String getCurrentTimeStamp() {
    DateFormat format = new SimpleDateFormat("HH:mm:ss");
    return format.format(new Date());
}

個人的には、代わりにJoda Timeを使用することをお勧めします。これは、はるかに優れた日付/時刻 API であり、そのフォーマットはスレッドセーフであるため、単一のフォーマット オブジェクトへの参照を簡単に保持できます。

于 2012-04-28T08:41:21.043 に答える
3
public static String getCurrentTimeStampwithTimeOnly() {
    return new SimpleDateFormat("HH:mm:ss").format(new Date());
}

これを行うのに役立ちます。

于 2012-04-28T09:19:16.553 に答える
0

この回線はいつでも呼び出すことができます

現在の日付 = 新しい日付 (); 

now 変数には現在のタイムスタンプが含まれます format 関数は、このタイムスタンプから文字列を生成するだけです

Calendar クラス ( Calendar.getInstance()) も見てください。

于 2012-04-28T08:43:35.063 に答える