@@ -193,22 +193,22 @@ public void SetData(byte[] data, int index, int count)
193193 if ( ( ( _flags & Flags . ModificationTime ) != 0 ) && ( count >= 5 ) ) {
194194 int iTime = helperStream . ReadLEInt ( ) ;
195195
196- _modificationTime = ( new DateTime ( 1970 , 1 , 1 , 0 , 0 , 0 ) . ToUniversalTime ( ) +
197- new TimeSpan ( 0 , 0 , 0 , iTime , 0 ) ) . ToLocalTime ( ) ;
196+ _modificationTime = new DateTime ( 1970 , 1 , 1 , 0 , 0 , 0 , 0 , DateTimeKind . Utc ) +
197+ new TimeSpan ( 0 , 0 , 0 , iTime , 0 ) ;
198198 }
199199
200200 if ( ( _flags & Flags . AccessTime ) != 0 ) {
201201 int iTime = helperStream . ReadLEInt ( ) ;
202202
203- _lastAccessTime = ( new DateTime ( 1970 , 1 , 1 , 0 , 0 , 0 ) . ToUniversalTime ( ) +
204- new TimeSpan ( 0 , 0 , 0 , iTime , 0 ) ) . ToLocalTime ( ) ;
203+ _lastAccessTime = new DateTime ( 1970 , 1 , 1 , 0 , 0 , 0 , 0 , DateTimeKind . Utc ) +
204+ new TimeSpan ( 0 , 0 , 0 , iTime , 0 ) ;
205205 }
206206
207207 if ( ( _flags & Flags . CreateTime ) != 0 ) {
208208 int iTime = helperStream . ReadLEInt ( ) ;
209209
210- _createTime = ( new DateTime ( 1970 , 1 , 1 , 0 , 0 , 0 ) . ToUniversalTime ( ) +
211- new TimeSpan ( 0 , 0 , 0 , iTime , 0 ) ) . ToLocalTime ( ) ;
210+ _createTime = new DateTime ( 1970 , 1 , 1 , 0 , 0 , 0 , 0 , DateTimeKind . Utc ) +
211+ new TimeSpan ( 0 , 0 , 0 , iTime , 0 ) ;
212212 }
213213 }
214214 }
@@ -224,17 +224,17 @@ public byte[] GetData()
224224 helperStream . IsStreamOwner = false ;
225225 helperStream . WriteByte ( ( byte ) _flags ) ; // Flags
226226 if ( ( _flags & Flags . ModificationTime ) != 0 ) {
227- TimeSpan span = _modificationTime . ToUniversalTime ( ) - new DateTime ( 1970 , 1 , 1 , 0 , 0 , 0 ) . ToUniversalTime ( ) ;
227+ TimeSpan span = _modificationTime - new DateTime ( 1970 , 1 , 1 , 0 , 0 , 0 , 0 , DateTimeKind . Utc ) ;
228228 var seconds = ( int ) span . TotalSeconds ;
229229 helperStream . WriteLEInt ( seconds ) ;
230230 }
231231 if ( ( _flags & Flags . AccessTime ) != 0 ) {
232- TimeSpan span = _lastAccessTime . ToUniversalTime ( ) - new DateTime ( 1970 , 1 , 1 , 0 , 0 , 0 ) . ToUniversalTime ( ) ;
232+ TimeSpan span = _lastAccessTime - new DateTime ( 1970 , 1 , 1 , 0 , 0 , 0 , 0 , DateTimeKind . Utc ) ;
233233 var seconds = ( int ) span . TotalSeconds ;
234234 helperStream . WriteLEInt ( seconds ) ;
235235 }
236236 if ( ( _flags & Flags . CreateTime ) != 0 ) {
237- TimeSpan span = _createTime . ToUniversalTime ( ) - new DateTime ( 1970 , 1 , 1 , 0 , 0 , 0 ) . ToUniversalTime ( ) ;
237+ TimeSpan span = _createTime - new DateTime ( 1970 , 1 , 1 , 0 , 0 , 0 , 0 , DateTimeKind . Utc ) ;
238238 var seconds = ( int ) span . TotalSeconds ;
239239 helperStream . WriteLEInt ( seconds ) ;
240240 }
@@ -365,13 +365,13 @@ public void SetData(byte[] data, int index, int count)
365365 if ( ntfsTag == 1 ) {
366366 if ( ntfsLength >= 24 ) {
367367 long lastModificationTicks = helperStream . ReadLELong ( ) ;
368- _lastModificationTime = DateTime . FromFileTime ( lastModificationTicks ) ;
368+ _lastModificationTime = DateTime . FromFileTimeUtc ( lastModificationTicks ) ;
369369
370370 long lastAccessTicks = helperStream . ReadLELong ( ) ;
371- _lastAccessTime = DateTime . FromFileTime ( lastAccessTicks ) ;
371+ _lastAccessTime = DateTime . FromFileTimeUtc ( lastAccessTicks ) ;
372372
373373 long createTimeTicks = helperStream . ReadLELong ( ) ;
374- _createTime = DateTime . FromFileTime ( createTimeTicks ) ;
374+ _createTime = DateTime . FromFileTimeUtc ( createTimeTicks ) ;
375375 }
376376 break ;
377377 } else {
@@ -394,9 +394,9 @@ public byte[] GetData()
394394 helperStream . WriteLEInt ( 0 ) ; // Reserved
395395 helperStream . WriteLEShort ( 1 ) ; // Tag
396396 helperStream . WriteLEShort ( 24 ) ; // Length = 3 x 8.
397- helperStream . WriteLELong ( _lastModificationTime . ToFileTime ( ) ) ;
398- helperStream . WriteLELong ( _lastAccessTime . ToFileTime ( ) ) ;
399- helperStream . WriteLELong ( _createTime . ToFileTime ( ) ) ;
397+ helperStream . WriteLELong ( _lastModificationTime . ToFileTimeUtc ( ) ) ;
398+ helperStream . WriteLELong ( _lastAccessTime . ToFileTimeUtc ( ) ) ;
399+ helperStream . WriteLELong ( _createTime . ToFileTimeUtc ( ) ) ;
400400 return ms . ToArray ( ) ;
401401 }
402402 }
@@ -469,9 +469,9 @@ public DateTime LastAccessTime
469469 }
470470
471471 #region Instance Fields
472- DateTime _lastAccessTime = DateTime . FromFileTime ( 0 ) ;
473- DateTime _lastModificationTime = DateTime . FromFileTime ( 0 ) ;
474- DateTime _createTime = DateTime . FromFileTime ( 0 ) ;
472+ DateTime _lastAccessTime = DateTime . FromFileTimeUtc ( 0 ) ;
473+ DateTime _lastModificationTime = DateTime . FromFileTimeUtc ( 0 ) ;
474+ DateTime _createTime = DateTime . FromFileTimeUtc ( 0 ) ;
475475 #endregion
476476 }
477477
0 commit comments