Sample code for 30+ languages & platforms
DataFlex

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

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoSocket
    Integer iMaxWaitMs
    Boolean iUseTls
    Boolean iBigEndian
    Handle hoDt
    Boolean iBLocalTime
    String sTemp1
    Integer iTemp1

    Move False To iSuccess

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

    Get Create (RefClass(cComChilkatSocket)) To hoSocket
    If (Not(IsComObjectCreated(hoSocket))) Begin
        Send CreateComObject of hoSocket
    End

    // Connect to an NIST time server and read the current date/time
    Move 4000 To iMaxWaitMs
    Move False To iUseTls
    Get ComConnect Of hoSocket "time-c.nist.gov" 37 iUseTls iMaxWaitMs To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSocket To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // 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
    // True or False to indicate success.  If successful, the integer
    // is obtained via the ReceivedInt property.
    Move True To iBigEndian
    Get ComReceiveInt32 Of hoSocket iBigEndian To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSocket To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComCkDateTime)) To hoDt
    If (Not(IsComObjectCreated(hoDt))) Begin
        Send CreateComObject of hoDt
    End
    Get ComReceivedInt Of hoSocket To iTemp1
    Get ComSetFromNtpTime Of hoDt iTemp1 To iSuccess

    // Show the current local date/time
    Move True To iBLocalTime
    Get ComGetAsRfc822 Of hoDt iBLocalTime To sTemp1
    Showln "Current local date/time: " sTemp1

    Move 10 To iMaxWaitMs
    Get ComClose Of hoSocket iMaxWaitMs To iSuccess


End_Procedure