Konvertieren von Tagen in Millisekunden

Lesezeit: 3 Minuten

Benutzer-Avatar
maas

Ich möchte eine Funktion erstellen, die die Tage in Millisekunden umwandelt. Das Tagesformat wird als 0,2444 gespeichert, wie konvertiert man das also in Millisekunden?

  • Wie viele Stunden an einem Tag? Wie viele Minuten in einer Stunde? Wie viele Sekunden in einer Minute? Wie viele Millisekunden in einer Sekunde?

    – Rup

    8. August 2011 um 9:54 Uhr

  • 0.2444 was bedeutet es?

    – jmj

    8. August 2011 um 9:55 Uhr


  • @ Jigar Joshi bedeutet wahrscheinlich 0,2444 eines Tages, auch bekannt als 24,44% oder 5,86 Stunden.

    – Daniel Ryan

    8. August 2011 um 10:03 Uhr

  • Oh und vergiss nicht, dass manche Tage 25h, manche 23h und manche sogar 23h59min59sec (Schaltsekunde) haben.

    – Giraffe

    8. August 2011 um 10:23 Uhr

  • @giraff – eine Funktion, die einen Bruchteil eines bestimmten Tages in Millisekunden umwandelt, muss zwei Argumente oder ein implizites Argument (wie “heute”) annehmen. Ich habe Schwierigkeiten zu glauben, dass es das ist, was die Anwendung des OP wirklich braucht. (Zum Beispiel würde niemand, der bei klarem Verstand ist, von einem Benutzer verlangen, einen Bruchteil eines Tages in eine Arbeitszeittabelle einzugeben unter Berücksichtigung der Stundenzahl des jeweiligen Tages. Jetzt tun wir es nicht kennt das ist die Anwendung des OP, aber …)

    – Stefan C

    12. August 2011 um 7:46 Uhr


Benutzer-Avatar
EX

Die beste Vorgehensweise dafü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.

  • Nein, diese Antwort sollte nicht akzeptiert werden, da DAYS.toMillis nur lange Argumente benötigt und OP doppelte Tage hat

    – Ľubomir

    8. März 2017 um 0:27 Uhr


  • Diese Antwort ist die Antwort, nach der die meisten Leute suchen, die hierher kommen, aber nicht die Antwort auf OP

    – OsaSoft

    11. Oktober 2019 um 12:03 Uhr

Neben den anderen Antworten gibt es auch die ZeitEinheit Klasse, mit der Sie eine Zeitdauer in eine andere umwandeln 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 longwenn Sie also einen Bruchteil eines Tages haben, müssen Sie ihn mit der Anzahl der Millisekunden an einem Tag multiplizieren.

Gewohnheit days * 24 * 60 * 60 * 1000 genügen?

  • Wahrscheinlich will er es so lang, also musst du es vielleicht auch am Ende von einem Doppel abrunden.

    – Rup

    8. August 2011 um 9:57 Uhr


24 Stunden = 86400 Sekunden = 86400000 Millisekunden. Multiplizieren Sie einfach Ihre Zahl mit 86400000.

Benutzer-Avatar
Rustem Mustafin

Es ist wichtig zu erwähnen, dass diese Methode einmal in 4-5 Jahren einen Fehler von 1 Sekunde aufgrund einer Schaltsekunde (http://www.nist.gov/pml/div688/leapseconds.cfm), und die richtige Formel für diesen Tag wäre

(24*60*60 + 1) * 1000

Es stellt sich die Frage Werden Schaltsekunden vom Kalender berücksichtigt? und die Antwort ist nein.

Wenn Sie also extrem zeitabhängige Software entwerfen, seien Sie vorsichtig mit dieser Formel.

  • Nur falls es jemanden interessiert – 2016 wird es eine Schaltsekunde geben

    – Rustem Mustafin

    20. Juli 2016 um 9:18 Uhr

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);
}

  • Nur falls es jemanden interessiert – 2016 wird es eine Schaltsekunde geben

    – Rustem Mustafin

    20. Juli 2016 um 9:18 Uhr

Benutzer-Avatar
Gk Mohammad Emon

Sie können diese Hilfsklasse 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 daran arbeiten Android-Framework dann einfach import es (auch genannt DateUtils) unter package android.text.format

1282320cookie-checkKonvertieren von Tagen in Millisekunden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy