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