92

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

4

8 に答える 8

298

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

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.
于 2014-06-18T12:27:48.570 に答える
121

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

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

このメソッドには がかかることに注意してくださいlong。したがって、1 日の端数がある場合は、1 日のミリ秒数を掛ける必要があります。

于 2011-08-08T10:00:58.983 に答える
23

days * 24 * 60 * 60 * 1000十分ではありませんか?

于 2011-08-08T09:56:19.533 に答える
13

4〜5年に1回、この方法ではうるう秒(http://www.nist.gov/pml/div688/leapseconds.cfm)の場合に1秒のエラーが発生する可能性があり、正しい式が表示される可能性があることに注意してください。その日は

(24*60*60 + 1) * 1000

質問がありますうるう秒はカレンダーによって提供されますか?答えはノーです。

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

于 2013-02-27T10:04:54.123 に答える
12

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

于 2011-08-08T09:57:20.657 に答える
3
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);
}
于 2011-08-08T10:09:32.710 に答える
2

このユーティリティクラスを使用できます-

public class DateUtils
{
    public static final long SECOND_IN_MILLIS = 1000;
    public static final long MINUTE_IN_MILLIS = SECOND_IN_MILLIS * 60;
    public static final long HOUR_IN_MILLIS = MINUTE_IN_MILLIS * 60;
    public static final long DAY_IN_MILLIS = HOUR_IN_MILLIS * 24;
    public static final long WEEK_IN_MILLIS = DAY_IN_MILLIS * 7;
}

Android フレームワークで作業している場合はimport、それ(名前もDateUtils)の下にあるpackage android.text.format

于 2020-11-05T19:19:24.143 に答える