Sample code for 30+ languages & platforms
Xbase++

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 Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oSocket
LOCAL nMaxWaitMs
LOCAL nUseTls
LOCAL nBigEndian
LOCAL oDt
LOCAL nBLocalTime

nSuccess := 0

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

oSocket := CreateObject("Chilkat.Socket")

//  Connect to an NIST time server and read the current date/time
nMaxWaitMs := 4000
nUseTls := 0
nSuccess := oSocket:Connect("time-c.nist.gov", 37, nUseTls, nMaxWaitMs)
IF (nSuccess != 1)
    ? oSocket:LastErrorText
    oSocket:destroy()
    RETURN
ENDIF

//  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.
nBigEndian := 1
nSuccess := oSocket:ReceiveInt32(nBigEndian)
IF (nSuccess != 1)
    ? oSocket:LastErrorText
    oSocket:destroy()
    RETURN
ENDIF

oDt := CreateObject("Chilkat.CkDateTime")
oDt:SetFromNtpTime(oSocket:ReceivedInt)

//  Show the current local date/time
nBLocalTime := 1
? "Current local date/time: " + oDt:GetAsRfc822(nBLocalTime)

nMaxWaitMs := 10
oSocket:Close(nMaxWaitMs)

oSocket:destroy()
oDt:destroy()