web-dev-qa-db-ja.com

日からミリ秒に変換する

日をミリ秒に変換する関数を作成したい。日形式は0.2444として保存されていますが、これをミリ秒に変換するにはどうすればよいですか?

59
maas

私の意見では、これのベストプラクティスは次のとおりです。

TimeUnit.DAYS.toMillis(1);     // 1 day to milliseconds.
TimeUnit.MINUTES.toMillis(23); // 23 minutes to milliseconds.
TimeUnit.HOURS.toMillis(4);    // 4 hours to milliseconds.
TimeUnit.SECONDS.toMillis(96); // 96 seconds to milliseconds.
223
E_X

他の答えに加えて、ある期間を別の期間に変換できる TimeUnit クラスもあります。たとえば、1日が何ミリ秒になるかを調べるには:

TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); //gives 86400000

このメソッドはlongを取るため、1日の端数がある場合は、1日のミリ秒数で乗算する必要があります。

104
dogbane

days * 24 * 60 * 60 * 1000で十分ですか?

17
Vlad

24時間= 86400秒= 86400000ミリ秒。 86400000を掛けるだけです。

10
Gaurav Gupta

4〜5年に1回、この方法ではうるう秒の場合に1秒のエラーが発生する可能性があることに言及することが重要です( http://www.nist.gov/pml/div688/leapseconds.cfm =)、その日の正しい式は

(24*60*60 + 1) * 1000

質問があります うるう秒はカレンダーで処理されますか? 、答えはノーです。

そのため、時間に非常に依存するソフトウェアを設計している場合は、この式に注意してください。

9
Rustem Mustafin
public static double toMilliSeconds(double day)
{
    return day * 24 * 60 * 60 * 1000;
}

またはlongとして:

public static long toMilliSeconds(double day)
{
    return (long) (day * 24 * 60 * 60 * 1000);
}
3
Eng.Fouad
int day = 5;
long dayInMilliseconds = day * org.Apache.commons.lang.time.DateUtils.MILLIS_PER_DAY
1
user11572247