class: Timestamp
authorStefan Vogel <sv@exept.de>
Sat, 08 Nov 2014 19:22:05 +0100
changeset 17005 d6d98374dd39
parent 17004 504c08a32877
child 17006 d6ec5e448ac5
class: Timestamp changed: #getMilliseconds #getSeconds #setMilliseconds: #setSeconds: Fix for 1600 based windows epoch
Timestamp.st
--- a/Timestamp.st	Sat Nov 08 18:14:37 2014 +0100
+++ b/Timestamp.st	Sat Nov 08 19:22:05 2014 +0100
@@ -12,25 +12,25 @@
 "{ Package: 'stx:libbasic' }"
 
 AbstractTime subclass:#Timestamp
-        instanceVariableNames:'osTime'
-        classVariableNames:'Epoch EpochEnd EpochEndOSTime'
-        poolDictionaries:''
-        category:'Magnitude-Time'
+	instanceVariableNames:'osTime'
+	classVariableNames:'Epoch EpochEnd EpochEndOSTime'
+	poolDictionaries:''
+	category:'Magnitude-Time'
 !
 
 Object subclass:#TimestampBuilderAbstract
-        instanceVariableNames:'year month day hour minute second millisecond isUtcTime
-                hasTimezone yearAlreadyRead utcOffset'
-        classVariableNames:''
-        poolDictionaries:''
-        privateIn:Timestamp
+	instanceVariableNames:'year month day hour minute second millisecond isUtcTime
+		hasTimezone yearAlreadyRead utcOffset'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:Timestamp
 !
 
 Timestamp::TimestampBuilderAbstract subclass:#TimestampISO8601Builder
-        instanceVariableNames:'stream'
-        classVariableNames:''
-        poolDictionaries:''
-        privateIn:Timestamp
+	instanceVariableNames:'stream'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:Timestamp
 !
 
 !Timestamp class methodsFor:'documentation'!
@@ -2798,7 +2798,7 @@
 getMilliseconds
     "strictly private: return the milliseconds (since the epoch) in utc"
 
-    ^ osTime
+    ^ osTime - OperatingSystem osTimeOf19700101
 
     "Created: 1.7.1996 / 14:33:56 / cg"
 !
@@ -2806,13 +2806,13 @@
 getSeconds
     "strictly private: return the seconds (since the epoch) in utc"
 
-    ^ osTime // 1000
+    ^ (osTime - OperatingSystem osTimeOf19700101) // 1000
 !
 
 setMilliseconds:millis
     "strictly private: set the milliseconds (since the epoch)"
 
-    osTime := millis.
+    osTime := OperatingSystem osTimeOf19700101 + millis.
 
     "Modified: 20.12.1995 / 11:46:36 / stefan"
     "Created: 1.7.1996 / 14:34:24 / cg"
@@ -2821,7 +2821,7 @@
 setSeconds:secs
     "strictly private: set the seconds (since whatever)"
 
-    osTime := secs * 1000.
+    osTime := OperatingSystem osTimeOf19700101 + (secs * 1000).
 
     "Modified: 20.12.1995 / 11:46:36 / stefan"
     "Modified: 1.7.1996 / 14:34:10 / cg"
@@ -3820,11 +3820,11 @@
 !Timestamp class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Timestamp.st,v 1.193 2014-11-08 17:13:29 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Timestamp.st,v 1.194 2014-11-08 18:22:05 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/Timestamp.st,v 1.193 2014-11-08 17:13:29 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Timestamp.st,v 1.194 2014-11-08 18:22:05 stefan Exp $'
 ! !