Gibt es eine Java-Bibliothek, die Zeichenfolgen, die Zeitangaben beschreiben (z. B. "1d 1m 1s"), in Millisekunden umwandelt?

8

Wenn Sie in JIRA Abschätzungen vornehmen, können Sie eine Zeichenfolge wie "1d 2h 30m" eingeben und JIRA übersetzt diese (ich nehme an) in eine entsprechende Anzahl von Millisekunden.

Gibt es eine verfügbare Java-Bibliothek, die das tut?

Ich verwende eine von Spring verwaltete Bean, die eine Eigenschaft verwendet, die angibt, wie oft ein Verzeichnis gelöscht werden sollte, und ich möchte zulassen, dass die Konfiguration eine lesbare Zeichenfolge anstelle einer expliziten Anzahl von Millisekunden verwendet / p>

Alternativ, wenn es einen besseren Ansatz gibt, an den ich nicht denke, würde ich es gerne hören.

    
Fil 25.10.2010, 13:50
quelle

6 Antworten

6

Der Parser ist nicht zu komplex:

%Vor%

Der Code ist ziemlich fehlertolerant, er ignoriert fast alles, was er nicht dekodieren kann (und ignoriert jeden Whitspace, also akzeptiert er "1d 1s", "1s 1d", "1d20m300s" und so weiter).

    
Andreas_D 25.10.2010, 14:22
quelle
3

Hier ist eine andere Lösung, die konfigurierbar ist:

%Vor%

Beispielverwendung:

%Vor%

Ausgabe:

  

10945000

    
Sean Patrick Floyd 25.10.2010 14:32
quelle
1

Sehen Sie sich joda-time an PeriodConverter . Ich habe diesen Teil der joda-time-Bibliothek nie selbst benutzt, aber es sieht so aus, als würde es tun, was Sie brauchen.

Im Allgemeinen, für Datum / Zeit Zeug, schaue zuerst auf joda-time:)

    
Michael D 25.10.2010 14:10
quelle
0

Soweit ich weiß, nein. Ich glaube, Sie müssten diese Zahlen selbst in Calendar (GregorianCalendar) konvertieren und dann von dort aus können Sie die Millisekunden erhalten, die Sie wahrscheinlich bereits wissen, weshalb Sie dies für die Hoffnung auf eine bessere Antwort veröffentlicht haben.

Meine Stimme: Wenn jetzt niemand mehr einen finden kann, ist es jetzt ein guter Zeitpunkt, selbst einen zu gründen und ihn in die Gemeinschaft einzubringen. :)

    
Chris Aldrich 25.10.2010 14:03
quelle
0
%Vor%     
aboettger 25.10.2010 14:15
quelle
0

Vielleicht wäre cron-Ausdrücke hilfreicher für Ihre aktuelle Aufgabe: wie oft etwas passieren soll. Dieses Format ist ziemlich flexibel, bekannt und verständlich. Verwenden Sie den Quartz-Scheduler, die EJB3-Timer-Annotationen oder die Spring-Timer-Annotationen, um Ihre Bean, die die periodische Routine ausführt, zu steuern.

    
Philipp Jardas 25.10.2010 15:34
quelle

Tags und Links