PureBasic
PureBasic
Get Email Date/Time
Demonstrates getting the email "Date" header field in a CkDateTime object.Chilkat PureBasic Downloads
IncludeFile "CkDtObj.pb"
IncludeFile "CkEmail.pb"
IncludeFile "CkDateTime.pb"
Procedure ChilkatExample()
success.i = 0
email.i = CkEmail::ckCreate()
If email.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Load a .eml file into the email object.
success = CkEmail::ckLoadEml(email,"/home/users/chilkat/eml/myEml.eml")
dtTime.i = CkDateTime::ckCreate()
If dtTime.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkDateTime::ckSetFromRfc822(dtTime,CkEmail::ckEmailDateStr(email))
; Once we have the CkDateTime object, we can get the date/time in many different formats:
; Get as a RFC822 GMT string:
bLocalTime.i = 0
Debug CkDateTime::ckGetAsRfc822(dtTime,bLocalTime)
; Get as an RFC822 string in the local timezone.
; (remember, the daylight savings that existed at the given time in the past is applied)
bLocalTime = 1
Debug CkDateTime::ckGetAsRfc822(dtTime,bLocalTime)
; Get as a 32-bit UNIX time (local or GMT..)
; The Unix time is number of seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC).
unixTime.i = CkDateTime::ckGetAsUnixTime(dtTime,bLocalTime)
Debug "Unix time: " + Str(unixTime)
; One can also get the as a "DtObj" object for accessing the individual
; parts of the date/time, such as month, day, year, hour, minute, etc.
; The DtObj can be obtained in the GMT or local timezone:
dtObj.i = CkDtObj::ckCreate()
If dtObj.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkDateTime::ckToDtObj(dtTime,bLocalTime,dtObj)
If CkDateTime::ckLastMethodSuccess(dtTime) = 0
Debug "This should never really happen!"
CkEmail::ckDispose(email)
CkDateTime::ckDispose(dtTime)
CkDtObj::ckDispose(dtObj)
ProcedureReturn
EndIf
Debug Str(CkDtObj::ckDay(dtObj)) + "-" + Str(CkDtObj::ckMonth(dtObj)) + "-" + Str(CkDtObj::ckYear(dtObj)) + " " + Str(CkDtObj::ckHour(dtObj)) + ":" + Str(CkDtObj::ckMinute(dtObj)) + ":" + Str(CkDtObj::ckSecond(dtObj))
CkEmail::ckDispose(email)
CkDateTime::ckDispose(dtTime)
CkDtObj::ckDispose(dtObj)
ProcedureReturn
EndProcedure