Sample code for 30+ languages & platforms
PowerBuilder

Get Email Date/Time

Demonstrates getting the email "Date" header field in a CkDateTime object.

Chilkat PowerBuilder Downloads

PowerBuilder
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