Ich möchte eine Funktion erstellen, die die Tage in Millisekunden umwandelt. Das Tagesformat wird als 0,2444 gespeichert. Wie kann es in Millisekunden konvertiert werden?
74
Ich möchte eine Funktion erstellen, die die Tage in Millisekunden umwandelt. Das Tagesformat wird als 0,2444 gespeichert. Wie kann es in Millisekunden konvertiert werden?
0.2444
was bedeutet esAntworten:
Die beste Vorgehensweise hierfür ist meiner Meinung nach:
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.
quelle
Neben den anderen Antworten gibt es auch die TimeUnit- Klasse, mit der Sie eine Zeitdauer in eine andere konvertieren können. Um beispielsweise herauszufinden, wie viele Millisekunden ein Tag ausmacht:
TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); //gives 86400000
Beachten Sie, dass diese Methode a dauert.
long
Wenn Sie also einen Bruchteil eines Tages haben, müssen Sie ihn mit der Anzahl der Millisekunden an einem Tag multiplizieren.quelle
Wird nicht
days * 24 * 60 * 60 * 1000
ausreichen?quelle
24 Stunden = 86400 Sekunden = 86400000 Millisekunden. Multiplizieren Sie einfach Ihre Zahl mit 86400000.
quelle
Es ist wichtig zu erwähnen, dass diese Methode einmal in 4-5 Jahren aufgrund einer Schaltsekunde ( http://www.nist.gov/pml/div688/leapseconds.cfm ) und der richtigen Formel einen Fehler von 1 Sekunde ergeben kann für diesen Tag wäre
(24*60*60 + 1) * 1000
Es gibt eine Frage Werden Schaltsekunden vom Kalender berücksichtigt? und die Antwort ist nein.
Wenn Sie also super zeitabhängige Software entwerfen, achten Sie auf diese Formel.
quelle
public static double toMilliSeconds(double day) { return day * 24 * 60 * 60 * 1000; }
oder als
long
:public static long toMilliSeconds(double day) { return (long) (day * 24 * 60 * 60 * 1000); }
quelle
int day = 5; long dayInMilliseconds = day * org.apache.commons.lang.time.DateUtils.MILLIS_PER_DAY
quelle
Sie können diese Dienstprogrammklasse verwenden -
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; }
Wenn Sie an Android Framework arbeiten, dann nur
import
es (auch genanntDateUtils
) unterpackage android.text.format
quelle