The problem with
GetFileDateTime is that some servers use local time zone while others use UTC/GMT time zone in their response to
MDTM command (used by
GetFileDateTime method). For this reason, we return the
DateTime value with the
Kind property of
DateTimeKind.Unspecified – it's either UTC or local time.
If "British Summer Time" (UTC+1) is the server's current time zone and its MDTM command returns UTC datetime values, then the time returned by GetFileDateTime will be one hour less than what the current local server time is. During winter, the time returned will match the local time - this won't be true for users in other countries, of course.
To convert the value returned by
GetFileDateTime from UTC time to local time, use
Of course, this must only be done for FTP servers that use UTC time zone in its
MDTM replies. On FTP servers that use local time, doing this would result in wrong time again. This situation is unfortunate, but hard to solve (FTP protocol offers no way to determine server's time zone or current time and although there are some ways to detect these, none of them is reliable enough and most of them involve uploading a temporary file at the FTP server).