Sample code for 30+ languages & platforms
Tcl

Get Current Date/Time from NIST Time Server

See more Socket/SSL/TLS Examples

Demonstrates using Chilkat Socket to connect to an NIST time server and (using the old Time Protocol (RFC 868)), will read the current GMT time.

Note: This is not necessarily the very best means for getting the current date/time. The most commonly used time protocol is the Network Time Protocol (RFC-1305).

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

set socket [new_CkSocket]

# Connect to an NIST time server and read the current date/time
set maxWaitMs 4000
set useTls 0
set success [CkSocket_Connect $socket "time-c.nist.gov" 37 $useTls $maxWaitMs]
if {$success != 1} then {
    puts [CkSocket_lastErrorText $socket]
    delete_CkSocket $socket
    exit
}

# The time server will send a big-endian 32-bit integer representing
# the number of seconds since since 00:00 (midnight) 1 January 1900 GMT.
# The ReceiveInt32 method will receive a 4-byte integer, but returns
# 1 or 0 to indicate success.  If successful, the integer
# is obtained via the ReceivedInt property.
set bigEndian 1
set success [CkSocket_ReceiveInt32 $socket $bigEndian]
if {$success != 1} then {
    puts [CkSocket_lastErrorText $socket]
    delete_CkSocket $socket
    exit
}

set dt [new_CkDateTime]

CkDateTime_SetFromNtpTime $dt [CkSocket_get_ReceivedInt $socket]

# Show the current local date/time
set bLocalTime 1
puts "Current local date/time: [CkDateTime_getAsRfc822 $dt $bLocalTime]"

set maxWaitMs 10
CkSocket_Close $socket $maxWaitMs

delete_CkSocket $socket
delete_CkDateTime $dt