Das ist wahrscheinlich zu viel verlangt, aber gibt es irgendeine Sprache, die eine wirklich großartige Arbeit bei der Darstellung von Zeit- und Datumsoperationen leistet? Ich gebe sofort zu, dass es wirklich schwer ist, eine wirklich großartige Zeitbibliothek zu schreiben. Das heißt, gibt es irgendwelche weit verbreiteten Sprachen, die eine haben? Im Grunde möchte ich etwas, das Zeit und Datum so umfassend behandelt wie moderne reguläre Ausdrucksbibliotheken ihre Aufgaben erledigen. Alles, was ich bisher in Python und Java gesehen habe, lässt ein oder mehrere ziemlich wichtige Stücke aus oder macht zu viele Dinge schwierig.
Zumindest sollte dies intuitiv zu tun sein:
Außerdem sollte die allgemeine Kalender-Klasse Unterklassen entsprechen, wenn ich einen eigenen hebräischen, babylonischen, Tolkien- oder Marsianerkalender rollen muss. (Java-Kalender machen dies zum Beispiel sinnlos schwer.)
Ich bin hier völlig sprachunabhängig. Es ist in Ordnung, wenn das Ding bei der Berechnung mehrdeutiger Dinge wie "Wie viele Minuten gibt es zwischen 2002 und dem nächsten Valentinstag?" Erstickt.
Wie wäre es mit .NETs DateTime ? (Sie können Ihre Sprache im Rahmen auswählen)
Suchen Sie etwas wie PHP strtotime ? Das gibt Ihnen den Unix-Zeitstempel von fast allem, was Sie darauf werfen können.
Von der PHP-Seite:
%Vor%Die Date-Klassen von .NET erfordern viel mehr arkanes Rumhängen mit DateTimeFormatInfo und dem Ich mag es, Datums-Strings zu analysieren, die nicht annähernd so kompliziert sind wie strtotime.
PHP bietet eine DateTime-Klasse und eine DateTimeZone-Klasse wie PHP 5, aber sie sind beide ziemlich schlecht dokumentiert. Ich verwende immer noch meistens Unix-Zeitstempel und das Datum , time und strtotime funktioniert, da ich mich mit den neuen Objekten noch nicht richtig auseinandergesetzt habe.
Die folgenden Links versuchen, DateTime und DateTimeZone etwas besser zu gestalten:
Für Java empfehle ich dringend die Joda Date / Time-Bibliothek .
Es gibt eine wirklich coole Programmiersprache namens Frink . Es unterstützt so ziemlich jede Einheit, die jemals erfunden wurde, jede physikalische oder mathematische Konstante, Zeitzonen, bla bla bla ...
Es hat sogar eine Weboberfläche und eine Java Applet .
Einige Ihrer Herausforderungen oben:
# 2008-12-25 # - now[] -> days
now[] - # 12:00 # -> minutes
# 1979-01-06 # + 1 million minutes
# 2008-08-08 08:08 PM China # -> London
### dd.MM.yyyy ###
# 18.09.2008 #
Frink lässt sich gut mit Java integrieren: Es kann in Java-Anwendungen eingebettet werden und Frink-Programme können Rufe Java-Code .
Ich mag .NET dafür. Es bietet eine gute Date / Time-Manipulation mit den Klassen DateTime und Timespan. Das meiste Datum / Zeit ist jedoch ziemlich einfach in jeder Sprache, was Ihnen einen Unix-Zeitstempel gibt, mit dem Sie arbeiten können.
PHP ist nicht halb so schlimm.
%Vor%Ihr müsst ein paar Lobeshymnen dafür haben, eine Funktion zu haben, um zu sagen, welches Datum Ostern ist Jahr .
Ich stimme zu, dass Java SDK eine schreckliche Implementierung der Datetime-Bibliothek hat. Hoffentlich wird JSR-310 dieses Problem in Java 7 beheben. Wenn Sie nicht auf Java 7 warten können, würde ich den Vorgänger von JSR-310, Joda Time, empfehlen.
Ich stimme zu, dass die Implementierung von Ruby on Rails in ActiveSupport eine ausgezeichnete Implementierung ist, die die Grundlagen richtig macht.
Ich war ziemlich glücklich mit der PEAR Date Klasse für PHP. Es tut alles, was Sie fragen, glaube ich, mit Ausnahme von mehreren Kalendern, obwohl es auch Date_Human gibt, was eine Vorlage für diese Art von Sache sein könnte.
Ich habe auch noch nicht damit gearbeitet, aber Zend_Date , auch für PHP, sieht aus wie es gut für die meisten von dem, was Sie wollen, funktioniert. Zend_Date hat den Vorteil, dass es auf Unix-Zeitstempeln basiert und dass der Großteil der Zend Framework-Klassen einfach zu erweitern ist. Am ehesten könntest du schnell Unterstützung für deine anderen Datensysteme hinzufügen, indem du Zend_Date erweiterst.
Perls DateTime-Bibliothek ist ohne Zweifel die beste (wie in den meisten Fällen korrekte) Bibliothek für die Behandlung von Datums- und Uhrzeit-Berechnungen und Zeitzonen. Alles andere ist in unterschiedlichem Maße falsch. (und ich sage, dass dies den oben genannten Blogeintrag in den DateTime / DateTimeZone-Bibliotheken von PHP geschrieben hat)
PHP Date Funktion ist fantastisch und hat viele nützliche Funktionen (Link: php.net/date )
.NET ist nicht schlecht in den neuesten Versionen und ich mag die Tatsache, dass Sie einen Verweis auf eine sekundäre Sprache hinzufügen und den Code in Ihrem Projekt mischen und abgleichen können. So könnten Sie C # - und VB-Funktionen innerhalb derselben Klasse verwenden.
Nebenbei: Ich frage mich, welche Art von Datumsdatentypen in Bereichen wie Archäologie verwendet werden! Wie stellt man historische Daten für ein Zeitlinien-Applet dar?
Ruby hat tatsächlich eine ausgezeichnete Unterstützung. Besuche diese Seite . Wirklich großartige Unterstützung, um Strings in Dates zu verwandeln, in Strings zu mixen, Mathe auf Dates zu schreiben, "natürliche Sprache" Strings wie "vor 3 Monaten diesen Freitag um 15:45" in ein aktuelles Datum zu zerlegen, Daten in Strings zu verwandeln, so dass man Sachen machen kann wie "Sam hat sich zuletzt vor 4 Tagen angemeldet" oder was auch immer ...
Sehr geschickt.
Tags und Links datetime date time language-features