Ich habe ein Programm, das Zeitstempel überprüft, aber von jetzt an verwendet es einen Regex, um sie zu überprüfen. Ich möchte wissen, ob es einen einfacheren Weg gibt, einen Zeitstempel im folgenden Format zu überprüfen: 05/03/2016 05:34:54 AM
oder .Einfacher Weg, um einen Zeitstempel zu überprüfen
Die Methoden für das Programm wie folgt aussehen:
class TimeStampFormatError < StandardError; end
def verify_timestamp(stamp)
begin
if !(stamp[/^\d{1,2}\/\d{1,2}\/\d{4} \d{1,2}:\d{1,2}:\d{1,2} [AP]M\z/])
puts 'Invalid format of timestamp example: 06/07/2016 5:30:23 AM'
raise TimeStampFormatError
else
stamp
end
rescue TimeStampFormatError
puts 'Invalid Timestamp format'
get_timestamp
end
end
def get_timestamp
print 'Enter timestamp: '
tm = gets.chomp
verify_timestamp(tm)
end
Sie können [DateTime.strptime] (http: // ruby-doc. org/stdlib-2.3.1/libdoc/date/rdoc/DateTime.html # M000214) mit dem entsprechenden Format. Wenn es mit "ArgumentError" fehlschlägt, stimmt die Eingabedatenzeichenfolge nicht mit dem angegebenen Format überein. – pah
Behalten Sie im Hinterkopf, dass die Verwendung eines Regex nur das Format * validiert. Es prüft nicht, ob der Zeitstempel (d.h. der 31. Februar) überhaupt gültig ist. – dognose