macOS bash中的时区计算错误?

macOS bash中的时区计算错误?,macos,shell,date,timezone,Macos,Shell,Date,Timezone,在macOS bash中执行以下操作时,它返回错误的时区信息 输入macOS TZ=“亚洲/雅库茨克”日期-j-f”%Y:%m:%d%H:%m:%S%z“2014:09:28 14:46:56+1000”+%Y:%m:%d%H:%m:%S%z“ 输出macOS 2014:09:28 14:46:56+0900 相反,在Debian Linux上的bash中 输入LinuxTZ=“亚洲/雅库茨克”日期——日期“2014-09-28 14:46:56+1000”+%Y:%m:%d%H:%m

在macOS bash中执行以下操作时,它返回错误的时区信息

  • 输入macOS
    TZ=“亚洲/雅库茨克”日期-j-f”%Y:%m:%d%H:%m:%S%z“2014:09:28 14:46:56+1000”+%Y:%m:%d%H:%m:%S%z“

  • 输出macOS
    2014:09:28 14:46:56+0900

相反,在Debian Linux上的bash中

  • 输入Linux
    TZ=“亚洲/雅库茨克”日期——日期“2014-09-28 14:46:56+1000”+%Y:%m:%d%H:%m:%S%z”
  • 输出Linux
    2014:09:28 14:46:56+1000
还有谁经历过这样的时区转换错误(+0900对+1000)?IMHO在2014年时,俄罗斯的时区设置仍然是UTC+10(根据)

谢谢你的想法/提示, J

注:在@KamilCuk的暗示之后

Linux上的输出

Asia/Yakutsk  Fri Dec 13 20:45:52 1901 UT = Sat Dec 14 05:24:50 1901 LMT isdst=0 gmtoff=31138
Asia/Yakutsk  Sat Dec 14 20:45:52 1901 UT = Sun Dec 15 05:24:50 1901 LMT isdst=0 gmtoff=31138
Asia/Yakutsk  Sat Mar 27 16:59:59 2010 UT = Sun Mar 28 01:59:59 2010 +09 isdst=0 gmtoff=32400
Asia/Yakutsk  Sat Mar 27 17:00:00 2010 UT = Sun Mar 28 03:00:00 2010 +10 isdst=1 gmtoff=36000
Asia/Yakutsk  Sat Oct 30 16:59:59 2010 UT = Sun Oct 31 02:59:59 2010 +10 isdst=1 gmtoff=36000
Asia/Yakutsk  Sat Oct 30 17:00:00 2010 UT = Sun Oct 31 02:00:00 2010 +09 isdst=0 gmtoff=32400
Asia/Yakutsk  Sat Mar 26 16:59:59 2011 UT = Sun Mar 27 01:59:59 2011 +09 isdst=0 gmtoff=32400
Asia/Yakutsk  Sat Mar 26 17:00:00 2011 UT = Sun Mar 27 03:00:00 2011 +10 isdst=0 gmtoff=36000
Asia/Yakutsk  Sat Oct 25 15:59:59 2014 UT = Sun Oct 26 01:59:59 2014 +10 isdst=0 gmtoff=36000
Asia/Yakutsk  Sat Oct 25 16:00:00 2014 UT = Sun Oct 26 01:00:00 2014 +09 isdst=0 gmtoff=32400
Asia/Yakutsk  Mon Jan 18 03:14:07 2038 UT = Mon Jan 18 12:14:07 2038 +09 isdst=0 gmtoff=32400
Asia/Yakutsk  Tue Jan 19 03:14:07 2038 UT = Tue Jan 19 12:14:07 2038 +09 isdst=0 gmtoff=32400
macOS上的输出

.
.
Asia/Yakutsk  Sat Oct 30 17:00:00 1999 UTC = Sun Oct 31 02:00:00 1999 +09 isdst=0
Asia/Yakutsk  Sat Mar 25 16:59:59 2000 UTC = Sun Mar 26 01:59:59 2000 +09 isdst=0
Asia/Yakutsk  Sat Mar 25 17:00:00 2000 UTC = Sun Mar 26 03:00:00 2000 +10 isdst=1
Asia/Yakutsk  Sat Oct 28 16:59:59 2000 UTC = Sun Oct 29 02:59:59 2000 +10 isdst=1
Asia/Yakutsk  Sat Oct 28 17:00:00 2000 UTC = Sun Oct 29 02:00:00 2000 +09 isdst=0
.
.
Asia/Yakutsk  Sat Mar 24 16:59:59 2007 UTC = Sun Mar 25 01:59:59 2007 +09 isdst=0
Asia/Yakutsk  Sat Mar 24 17:00:00 2007 UTC = Sun Mar 25 03:00:00 2007 +10 isdst=1
Asia/Yakutsk  Sat Oct 27 16:59:59 2007 UTC = Sun Oct 28 02:59:59 2007 +10 isdst=1
Asia/Yakutsk  Sat Oct 27 17:00:00 2007 UTC = Sun Oct 28 02:00:00 2007 +09 isdst=0
Asia/Yakutsk  Sat Mar 29 16:59:59 2008 UTC = Sun Mar 30 01:59:59 2008 +09 isdst=0
Asia/Yakutsk  Sat Mar 29 17:00:00 2008 UTC = Sun Mar 30 03:00:00 2008 +10 isdst=1
Asia/Yakutsk  Sat Oct 25 16:59:59 2008 UTC = Sun Oct 26 02:59:59 2008 +10 isdst=1
Asia/Yakutsk  Sat Oct 25 17:00:00 2008 UTC = Sun Oct 26 02:00:00 2008 +09 isdst=0
Asia/Yakutsk  Sat Mar 28 16:59:59 2009 UTC = Sun Mar 29 01:59:59 2009 +09 isdst=0
Asia/Yakutsk  Sat Mar 28 17:00:00 2009 UTC = Sun Mar 29 03:00:00 2009 +10 isdst=1
Asia/Yakutsk  Sat Oct 24 16:59:59 2009 UTC = Sun Oct 25 02:59:59 2009 +10 isdst=1
Asia/Yakutsk  Sat Oct 24 17:00:00 2009 UTC = Sun Oct 25 02:00:00 2009 +09 isdst=0
Asia/Yakutsk  Mon Jan 18 03:14:07 2038 UTC = Mon Jan 18 12:14:07 2038 +09 isdst=0
Asia/Yakutsk  Tue Jan 19 03:14:07 2038 UTC = Tue Jan 19 12:14:07 2038 +09 isdst=0
Asia/Yakutsk  Sat Oct 24 17:00:00 2009 UTC = Sun Oct 25 02:00:00 2009 +09 isdst=0
Asia/Yakutsk  Mon Jan 18 03:14:07 2038 UTC = Mon Jan 18 12:14:07 2038 +09 isdst=0
macOS上的输出

.
.
Asia/Yakutsk  Sat Oct 30 17:00:00 1999 UTC = Sun Oct 31 02:00:00 1999 +09 isdst=0
Asia/Yakutsk  Sat Mar 25 16:59:59 2000 UTC = Sun Mar 26 01:59:59 2000 +09 isdst=0
Asia/Yakutsk  Sat Mar 25 17:00:00 2000 UTC = Sun Mar 26 03:00:00 2000 +10 isdst=1
Asia/Yakutsk  Sat Oct 28 16:59:59 2000 UTC = Sun Oct 29 02:59:59 2000 +10 isdst=1
Asia/Yakutsk  Sat Oct 28 17:00:00 2000 UTC = Sun Oct 29 02:00:00 2000 +09 isdst=0
.
.
Asia/Yakutsk  Sat Mar 24 16:59:59 2007 UTC = Sun Mar 25 01:59:59 2007 +09 isdst=0
Asia/Yakutsk  Sat Mar 24 17:00:00 2007 UTC = Sun Mar 25 03:00:00 2007 +10 isdst=1
Asia/Yakutsk  Sat Oct 27 16:59:59 2007 UTC = Sun Oct 28 02:59:59 2007 +10 isdst=1
Asia/Yakutsk  Sat Oct 27 17:00:00 2007 UTC = Sun Oct 28 02:00:00 2007 +09 isdst=0
Asia/Yakutsk  Sat Mar 29 16:59:59 2008 UTC = Sun Mar 30 01:59:59 2008 +09 isdst=0
Asia/Yakutsk  Sat Mar 29 17:00:00 2008 UTC = Sun Mar 30 03:00:00 2008 +10 isdst=1
Asia/Yakutsk  Sat Oct 25 16:59:59 2008 UTC = Sun Oct 26 02:59:59 2008 +10 isdst=1
Asia/Yakutsk  Sat Oct 25 17:00:00 2008 UTC = Sun Oct 26 02:00:00 2008 +09 isdst=0
Asia/Yakutsk  Sat Mar 28 16:59:59 2009 UTC = Sun Mar 29 01:59:59 2009 +09 isdst=0
Asia/Yakutsk  Sat Mar 28 17:00:00 2009 UTC = Sun Mar 29 03:00:00 2009 +10 isdst=1
Asia/Yakutsk  Sat Oct 24 16:59:59 2009 UTC = Sun Oct 25 02:59:59 2009 +10 isdst=1
Asia/Yakutsk  Sat Oct 24 17:00:00 2009 UTC = Sun Oct 25 02:00:00 2009 +09 isdst=0
Asia/Yakutsk  Mon Jan 18 03:14:07 2038 UTC = Mon Jan 18 12:14:07 2038 +09 isdst=0
Asia/Yakutsk  Tue Jan 19 03:14:07 2038 UTC = Tue Jan 19 12:14:07 2038 +09 isdst=0
Asia/Yakutsk  Sat Oct 24 17:00:00 2009 UTC = Sun Oct 25 02:00:00 2009 +09 isdst=0
Asia/Yakutsk  Mon Jan 18 03:14:07 2038 UTC = Mon Jan 18 12:14:07 2038 +09 isdst=0
您的macos时区信息已过时或无效。可能的原因是您的系统过时,您应该更新
tzdata
软件包


在谷歌上搜索5分钟,我看到了关于如何在MacOS上手动更新tzdata数据库的多个链接。如果某些“系统更新”的路径不可用,则手动编译并安装
/usr/share/zoneinfo/Asia/Yakutsk

的tzdata,请在两个系统上发布
zdump-v-c 201020 Asia/Yakutsk
的输出(我不知道macos是否有zdump)。奇怪的是,你通过了
+10:00
vs
+1000
%Y:%m:%d
vs
%Y-%m-%d
?为什么要改变它呢?你看:
Asia/Yakutsk Sat-Oct 24 17:00:00 2009 UTC=Sun-Oct 25 02:00:00 2009+09 isdst=0 Asia/Yakutsk-Mon-Jan 18 03:14:07 2038 UTC=Mon-Jan 18 12:14:07 2038+09 isdst=0
-tz数据不同,2014年没有+10。我想它只是过时了请添加4个前导空格以格式化文本块,或选择文本并单击
{}
。研究如何在markdown中格式化代码。嗨@KamilCuk,谢谢你关于zdump的提示。我将输出添加到我编辑的文章中,并更正了格式!感谢您的投入-stackoverflow上的总新手数。。。好吧,现在我知道至少那不是我的代码!你好今后请注意。在另一个StackExchange站点(如或)上询问此问题会更好。谢谢。亲爱的,谢谢你,@KamilCuk!是的,已经过时了。这一变更是在2014-08-05发布的tzdata 2014f中做出的。从那时起,该系统就不必进行更新。