命令日期不尊重时区

命令日期不尊重时区

我在 Windows 10 上使用 git-bash:

~$ locale
LANG=C
LC_CTYPE="C"   
LC_NUMERIC="C" 
LC_TIME="C"    
LC_COLLATE="C" 
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=        

~$ date --version
date (GNU coreutils) 8.31
Copyright (C) 2019 Free Software Foundation, Inc.                              
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.             
There is NO WARRANTY, to the extent permitted by law.                          
Written by David MacKenzie.                                                    

~$ TZ=America/Los_Angeles date
Tue Mar 31 09:40:41 GMT 2020

为什么date显示格林威治标准时间而不是洛杉矶时间?

答案1

类 Unix 系统(实际的 Linux 操作系统和基于 MSys2 的“Git for Windows”工具)的时区信息并未嵌入软件本身,而是作为“tzdata”文件的集合进行分发。例如,您的时区数据位于/usr/share/zoneinfo/America/Los_Angeles

似乎“Git for Windows”软件包根本没有安装“tzdata”数据库。(我不确定这是无意的还是有意的,因为它在“tcl8.6”子目录中有一组 tzinfo 文件 - 但不在“主”共享数据目录中。)

相关内容