Dear ShellPkg maintainer,

I think there is an issue with the ls command. It does not use the TImeZone, so 
it seems it is hard coded to assume that a filesystem stores time like FAT, in 
local time. The FAT driver always returns EFI_UNSPECIFIED_TIMEZONE, which 
implies the values are local time. But what if a filesystem is storing time in 
UTC (EFI_TIME.TimeZone == 0)? it seems the current path in the shell assumes 
EFI_UNSPECIFIED_TIMEZONE (thus all time is local time). I don’t think this 
follows the UEFI spec. I think the correct algorithm is:

if FileSystemTime.TimeZone == EFI_UNSPECIFIED_TIMEZONE
   // This is the current path in the code
  Assume time is local time, and print it out
else:
  // This is the missing path.
  Adjust the FileSystemTime.TimeZone for the System.TimeZone (and 
System.Daylight), thus display the time in local time. 

Thanks,

Andrew Fish


------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to