PowerBuilder
PowerBuilder
Get Email Date/Time
Demonstrates getting the email "Date" header field in a CkDateTime object.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Email
oleobject loo_DtTime
integer li_BLocalTime
integer li_UnixTime
oleobject loo_DtObj
li_Success = 0
loo_Email = create oleobject
li_rc = loo_Email.ConnectToNewObject("Chilkat.Email")
if li_rc < 0 then
destroy loo_Email
MessageBox("Error","Connecting to COM object failed")
return
end if
// Load a .eml file into the email object.
li_Success = loo_Email.LoadEml("/home/users/chilkat/eml/myEml.eml")
loo_DtTime = create oleobject
li_rc = loo_DtTime.ConnectToNewObject("Chilkat.CkDateTime")
loo_DtTime.SetFromRfc822(loo_Email.EmailDateStr)
// Once we have the CkDateTime object, we can get the date/time in many different formats:
// Get as a RFC822 GMT string:
li_BLocalTime = 0
Write-Debug loo_DtTime.GetAsRfc822(li_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)
li_BLocalTime = 1
Write-Debug loo_DtTime.GetAsRfc822(li_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).
li_UnixTime = loo_DtTime.GetAsUnixTime(li_BLocalTime)
Write-Debug "Unix time: " + string(li_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:
loo_DtObj = create oleobject
li_rc = loo_DtObj.ConnectToNewObject("Chilkat.DtObj")
loo_DtTime.ToDtObj(li_BLocalTime,loo_DtObj)
if loo_DtTime.LastMethodSuccess = 0 then
Write-Debug "This should never really happen!"
destroy loo_Email
destroy loo_DtTime
destroy loo_DtObj
return
end if
Write-Debug string(loo_DtObj.Day) + "-" + string(loo_DtObj.Month) + "-" + string(loo_DtObj.Year) + " " + string(loo_DtObj.Hour) + ":" + string(loo_DtObj.Minute) + ":" + string(loo_DtObj.Second)
destroy loo_Email
destroy loo_DtTime
destroy loo_DtObj