Der Unterschied zwischen Time
und DateTime
hat mit der Implementierung zu tun. DateTime
kommt aus der Rails-Welt und ist ein beliebiges Datum mit Uhrzeit. Es ist eher ein kalenderbasiertes System. Time
wird als Sekunden seit dem 1. Januar 1970 UTC gemessen und ist zeitzonenunabhängig. Auf einigen Systemen ist es auf Werte zwischen 1901 und 2038 beschränkt, eine Beschränkung, wie traditionell dieser Wert als eine 32-Bit-Ganzzahl mit Vorzeichen gespeichert wird, aber neuere Versionen von Ruby können einen viel größeren Bereich unter Verwendung eines 64-Bit-Werts oder BigNum verarbeiten nach Bedarf.
Kurz gesagt, DateTime
ist, was Sie von einer Datenbank in Rails bekommen, wo Zeit ist, was Ruby traditionell verwendet hat. Wenn Sie mit Werten arbeiten, bei denen Datumsangaben wichtig sind und Sie Informationen zum Ende des Monats oder zu dem Tag, an dem es sechs Wochen voraus ist, wissen möchten, verwenden Sie DateTime. Wenn Sie nur die verstrichene Zeit messen und sich nicht darum kümmern, verwenden Sie Zeit. Sie sind leicht zu konvertieren, wenn nötig.
Date
auf der anderen Seite ist nur ein Kalenderdatum und hat keine damit verbundenen Zeiten. Vielleicht möchten Sie diese verwenden, wenn Zeiten irrelevant sind.
strptime
ist die Abkürzung für "parse time", wobei strftime
für "Formatierungszeit" steht. Das heißt, strptime
ist das Gegenteil von strftime
, obwohl sie praktisch die gleiche Formatierungsspezifikation verwenden. Ich habe selten gesehen strptime
verwendet, da DateTime.parse
ist in der Regel gut zu erfassen, was los ist, aber wenn Sie wirklich buchstabieren müssen, auf jeden Fall den Legacy-Parser verwenden.
Mit "04/26/2017" würden Sie, um in der Datenbank zu speichern, analysieren und dann formatieren: Date.strptime ("26.04.2017", "% m /% d /% Y"). strftime ('% Y-% m-% d') – Donato