30 lines
787 B
Smalltalk
30 lines
787 B
Smalltalk
|s abbrDict dt|
|
|
|
|
s := 'March 7 2009 7:30pm EST'.
|
|
|
|
"Build a abbreviation -> offset for timezones (example)"
|
|
abbrDict := Dictionary new.
|
|
|
|
abbrDict at: 'EST'
|
|
put: { (Duration days: 0 hours: -5 minutes: 0 seconds: 0).
|
|
(DateTime year: 2009 month: 3 day: 8 hour: 2 minute: 0 second: 0).
|
|
(Duration days: 0 hours: 1 minutes: 0 seconds: 0) }.
|
|
|
|
dt := DateTimeTZ readFromWithMeridian: (s readStream) andTimeZone: abbrDict.
|
|
|
|
dt := dt + (Duration days: 0 hours: 12 minutes: 0 seconds: 0).
|
|
|
|
"let's print it"
|
|
('%1 %2 %3 %4:%5%6 %7' %
|
|
{
|
|
(dt dateTime) monthName asString.
|
|
(dt dateTime) day.
|
|
(dt dateTime) year.
|
|
(dt dateTime) hour12.
|
|
(dt dateTime) minute.
|
|
(dt dateTime) meridianAbbreviation asString.
|
|
dt timeZoneName.
|
|
}) displayNl.
|
|
|
|
(dt dateTime) asUTC displayNl.
|