Sample code for 30+ languages & platforms
PowerBuilder

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 PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Socket
integer li_MaxWaitMs
integer li_UseTls
integer li_BigEndian
oleobject loo_Dt
integer li_BLocalTime

li_Success = 0

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

loo_Socket = create oleobject
li_rc = loo_Socket.ConnectToNewObject("Chilkat.Socket")
if li_rc < 0 then
    destroy loo_Socket
    MessageBox("Error","Connecting to COM object failed")
    return
end if

// Connect to an NIST time server and read the current date/time
li_MaxWaitMs = 4000
li_UseTls = 0
li_Success = loo_Socket.Connect("time-c.nist.gov",37,li_UseTls,li_MaxWaitMs)
if li_Success <> 1 then
    Write-Debug loo_Socket.LastErrorText
    destroy loo_Socket
    return
end if

// 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.
li_BigEndian = 1
li_Success = loo_Socket.ReceiveInt32(li_BigEndian)
if li_Success <> 1 then
    Write-Debug loo_Socket.LastErrorText
    destroy loo_Socket
    return
end if

loo_Dt = create oleobject
li_rc = loo_Dt.ConnectToNewObject("Chilkat.CkDateTime")

loo_Dt.SetFromNtpTime(loo_Socket.ReceivedInt)

// Show the current local date/time
li_BLocalTime = 1
Write-Debug "Current local date/time: " + loo_Dt.GetAsRfc822(li_BLocalTime)

li_MaxWaitMs = 10
loo_Socket.Close(li_MaxWaitMs)


destroy loo_Socket
destroy loo_Dt