@@ -19,8 +19,8 @@ public void GetDateTimeFromXmlTest()
1919 Console . WriteLine ( result ) ;
2020
2121 var timeStrToString = "2018/12/27 13:20:11" ; //ToString 之后结果会不一样
22- Console . WriteLine ( result . ToString ( ) ) ;
23- Assert . AreEqual ( timeStrToString , result . ToString ( ) ) ;
22+ Console . WriteLine ( result . ToString ( "yyyy/MM/dd HH:mm:ss" ) ) ;
23+ Assert . AreEqual ( timeStrToString , result . ToString ( "yyyy/MM/dd HH:mm:ss" ) ) ;
2424 }
2525 }
2626
@@ -32,26 +32,91 @@ public void GetDateTimeOffsetFromXmlTest()
3232 var result = DateTimeHelper . GetDateTimeOffsetFromXml ( timeTicks ) ;
3333 var timeStr = "12/27/2018 13:20:11 +08:00" ; //直接打印出来的结果
3434 Console . WriteLine ( result ) ;
35- Console . WriteLine ( result + "" ) ;
35+ Console . WriteLine ( result + "" ) ;
3636 Console . WriteLine ( result . ToString ( ) ) ;
3737 Console . WriteLine ( result . Date . ToString ( ) ) ;
3838 Console . WriteLine ( result . DateTime . ToString ( ) ) ;
3939 Console . WriteLine ( result . LocalDateTime . ToString ( ) ) ;
4040 var timeStrTostring = "2018/12/27 13:20:11 +08:00" ; //不是用ToString()返回结果不一致
41- Assert . AreEqual ( timeStrTostring , result . ToString ( ) ) ;
41+ Assert . AreEqual ( timeStrTostring , result . ToString ( "yyyy/MM/dd HH:mm:ss zzz" ) ) ;
4242
4343 Console . WriteLine ( "==============" ) ;
4444 var localTimeStr = "2018/12/27 13:20:11" ;
45- Console . WriteLine ( result . LocalDateTime ) ;
46- Assert . AreEqual ( localTimeStr , result . LocalDateTime . ToString ( ) ) ;
45+ Console . WriteLine ( result . LocalDateTime ) ;
46+ Assert . AreEqual ( localTimeStr , result . LocalDateTime . ToString ( "yyyy/MM/dd HH:mm:ss" ) ) ;
4747 Console . WriteLine ( result . DateTime ) ;
48- Assert . AreEqual ( localTimeStr , result . DateTime . ToString ( ) ) ;
48+ Assert . AreEqual ( localTimeStr , result . DateTime . ToString ( "yyyy/MM/dd HH:mm:ss" ) ) ;
49+ }
50+ }
4951
52+ [ TestMethod ]
53+ public void GetDateTimeOffsetFromXml_ShouldReturnCorrectDateTime ( )
54+ {
55+ // Arrange
56+ long unixTimeStamp = 1545888011 ; // Unix 时间戳
57+ DateTimeOffset expectedDateTime = new DateTimeOffset ( 2018 , 12 , 27 , 13 , 20 , 11 , TimeSpan . FromHours ( 8 ) ) ; // 预期的中国标准时间
5058
59+ // Act
60+ DateTimeOffset actualDateTime = DateTimeHelper . GetDateTimeOffsetFromXml ( unixTimeStamp ) ;
5161
52- //Assert.AreEqual(timeStr, result);
62+ // Assert
63+ Assert . AreEqual ( expectedDateTime , actualDateTime ) ;
64+ }
5365
54- }
66+ [ TestMethod ]
67+ public void GetDateTimeOffsetFromXml_ShouldHandleEpochStart ( )
68+ {
69+ // Arrange
70+ long unixTimeStamp = 0 ;
71+ DateTimeOffset expectedDateTime = new DateTimeOffset ( 1970 , 1 , 1 , 8 , 0 , 0 , TimeSpan . FromHours ( 8 ) ) ; // +8时区
72+
73+ // Act
74+ DateTimeOffset actualDateTime = DateTimeHelper . GetDateTimeOffsetFromXml ( unixTimeStamp ) ;
75+
76+ // Assert
77+ Assert . AreEqual ( expectedDateTime , actualDateTime ) ;
78+ }
79+
80+ [ TestMethod ]
81+ public void GetDateTimeOffsetFromXml_ShouldReturnCorrectDateTime_UTC ( )
82+ {
83+ // Arrange
84+ long unixTimeStamp = 1545888011 ; // Unix 时间戳
85+ DateTimeOffset expectedDateTime = new DateTimeOffset ( 2018 , 12 , 27 , 5 , 20 , 11 , TimeSpan . Zero ) ; // 预期的 UTC 时间
86+
87+ // Act
88+ DateTimeOffset actualDateTime = DateTimeHelper . GetDateTimeOffsetFromXml ( unixTimeStamp , "UTC" ) ;
89+
90+ // Assert
91+ Assert . AreEqual ( expectedDateTime , actualDateTime ) ;
92+ }
93+
94+ [ TestMethod ]
95+ public void GetDateTimeOffsetFromXml_ShouldReturnCorrectDateTime_EasternStandardTime ( )
96+ {
97+ // Arrange
98+ long unixTimeStamp = 1545888011 ; // Unix 时间戳
99+ DateTimeOffset expectedDateTime = new DateTimeOffset ( 2018 , 12 , 27 , 0 , 20 , 11 , TimeSpan . FromHours ( - 5 ) ) ; // 预期的美国东部标准时间
100+
101+ // Act
102+ DateTimeOffset actualDateTime = DateTimeHelper . GetDateTimeOffsetFromXml ( unixTimeStamp , "Eastern Standard Time" ) ;
103+
104+ // Assert
105+ Assert . AreEqual ( expectedDateTime , actualDateTime ) ;
106+ }
107+
108+ [ TestMethod ]
109+ public void GetDateTimeOffsetFromXml_ShouldReturnCorrectDateTime_PacificStandardTime ( )
110+ {
111+ // Arrange
112+ long unixTimeStamp = 1545888011 ; // Unix 时间戳
113+ DateTimeOffset expectedDateTime = new DateTimeOffset ( 2018 , 12 , 26 , 21 , 20 , 11 , TimeSpan . FromHours ( - 8 ) ) ; // 预期的美国太平洋标准时间
114+
115+ // Act
116+ DateTimeOffset actualDateTime = DateTimeHelper . GetDateTimeOffsetFromXml ( unixTimeStamp , "Pacific Standard Time" ) ;
117+
118+ // Assert
119+ Assert . AreEqual ( expectedDateTime , actualDateTime ) ;
55120 }
56121 }
57122
0 commit comments