понеділок, 17 грудня 2007 р.

Get current time from internet time server

Вдосконалюючи Новорічний Лічильник написав простенький скрипт який бере поточну дату і час з інтернету. Можливо комусь пригодиться.

# Provides date & time data from NIST (time.nist.gov)

require 'socket'

time_server = "time-nw.nist.gov"
begin
# http://www.faqs.org/rfcs/rfc867.html
# "JJJJJ YY-MM-DD HH:MM:SS TT L H msADV UTC(NIST) OTM"
#
client = TCPSocket.open(time_server, 13)
time_str = client.read
rescue SocketError => err
puts err
exit
end

# Parse and assign to variables
# ju - Modified Julian Date (MJD)
# ye - Year (2 digits)
# mo - Month (2 digits)
# da - Day (2 digits)
# ho - Hour (24-hour, 2 digits)
# me - Minutes (2 digits)
# se - Seconds (2 digits)
#
ju, ye, mo, da, ho, mi ,se = /(\d{5})\s(\d{2})-(\d{2})-(\d{2})\s(\d{2}):(\d{2}):(\d{2})/.match( time_str.strip)[1..7]

# Create the NIST time from parsed data
#
utc_time_now = Time.utc(ye, mo, da, ho, mi, se)

local_time_now = utc_time_now.localtime
puts local_time_now

Немає коментарів: