1
我有一個程序,驗證時間戳,但現在它使用正則表達式來驗證它們。我想知道的是,是否有更簡單的方式來驗證以下格式的時間戳:05/03/2016 05:34:54 AM
或PM
。更簡單的方法來驗證時間戳
該方案的方法是這樣的:
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
您可以使用[DateTime.strptime(HTTP://紅寶石文檔。 org/stdlib-2.3.1/libdoc/date/rdoc/DateTime.html#M000214)。如果使用'ArgumentError'失敗,則輸入的日期字符串與指定的格式不匹配。 – pah
請記住,使用這個正則表達式只會*驗證格式*。它不檢查時間戳(即2月31日)是否有效。 – dognose