SstDate represents a moment in time, a combination of Smalltalk's Date and Time. SstDate supports a subset of Date and Time creation protocol, and most of their normal protocol.
SstDate has two possible representations. A relative date represents the time as a number of seconds since an epoch, an arbitrarily chosen fixed moment in time. As a result, only the local representation of the time changes with the local timezone, while the actual moment in time remains the same. For example, while 19:00 in Sydney may be 05:00 in Ottawa, it is only the local representation of the moment that is different: the actual moment in time is the same.
An absolute date, on the other hand, represents time in local time. Thus, 19:00 remains 19:00 even if the local timezone shifts to daylight savings. This is the traditional representation of Smalltalk's Date and Time.
A date can also be rooted to a particular timezone.
SstDate’s printString gives the date in the standard internet format as defined by RFC1123.
There is protocol to determine whether a date is absolute or relative, and to answer a converted representation, and to answer the number of seconds/milliseconds from several popular epochs.
Because Smalltalk does not have any inherent concept of the local timezone, SST provides a workaround with the class method sstMinutesFromUTC: in Date. This method is given the number of minutes that the local timezone is from UTC; if ahead, the number should be positive, if behind UTC, then negative. The current offset can be queried with the class method sstMinutesFromUTC in Date. This mechanism does not adjust for daylight-savings and the like. If unset, then it is assumed that the system is in UTC.