CrackDate Method
Class: FTP_SERVICE
Internal method for converting file system structure to system date.
Object.CrackDate
Parameter
lcOutBuffer
Type Character
Direction Input
Example
See source code of method FTP_SERVICE::CrackFile()
See also
Expand/Collapse source code of procedure CrackDate Source Code
LPARAMETERS INP lcOutBuffer
      LOCAL lcInBuffer, ldDateTime, fResult, lcBuild, ;
            lnDay, lnMonth, lnYear, lnHour, lnMinute, lnSecond

      lcInBuffer = SPACE(16)

      fResult = FileTimeToSystemTime(@lcOutBuffer, @lcInBuffer)
      This.GetExtendedError()

      IF fResult = 0   && Failed
         ldDateTime = {^1901/01/01 00:00:01}   && Default Time
         RETURN ldDateTime
      ENDIF

      lnYear = ASC(SUBSTR(lcInBuffer, 1, 1)) + (ASC(SUBSTR(lcInBuffer, 2, 1)) * BYTE_2)
      lnMonth = ASC(SUBSTR(lcInBuffer, 3, 1)) + (ASC(SUBSTR(lcInBuffer, 4, 1)) * BYTE_2)
      lnDay = ASC(SUBSTR(lcInBuffer, 7, 1)) + (ASC(SUBSTR(lcInBuffer, 8, 1)) * BYTE_2)
      lnHour = ASC(SUBSTR(lcInBuffer, 9, 1)) + (ASC(SUBSTR(lcInBuffer, 10, 1)) * BYTE_2)
      lnMinute = ASC(SUBSTR(lcInBuffer, 11, 1)) + (ASC(SUBSTR(lcInBuffer, 12, 1)) * BYTE_2)
      lnSecond = ASC(SUBSTR(lcInBuffer, 13, 1)) + (ASC(SUBSTR(lcInBuffer, 13, 1)) * BYTE_2)

      lcBuild = "^" + ALLTRIM(STR(lnYear)) + '-' + ALLTRIM(STR(lnMonth)) + '-' + ALLTRIM(STR(lnDay)) + ' ' + ;
                ALLTRIM(STR(lnHour)) + ':' + ALLTRIM(STR(lnMinute)) + ':' + ALLTRIM(STR(lnSecond))

      ldDateTime = CTOD(lcBuild)
      RETURN ldDateTime