如何更改上次修改日期和时间,而不考虑时区和夏令时?

如何更改上次修改日期和时间,而不考虑时区和夏令时?

我有两个文件,我需要更改它们的最后修改日期:两者都应该是午夜,一个是 6 月 25 日,另一个是 11 月 25 日。基本上是这样的:

touch -cmt 201606242359.60 summer-file
touch -cmt 201611242359.60 winter-file

我们的服务器时区是“欧洲/马德里”,因此我们享受夏令时:冬季采用 UTC+1,夏季采用 UTC+2。这意味着如果我现在运行上述命令,它们会设置冬季档案日期正确,但是夏季档案提前一小时:6 月 24 日 23:00。如果我在夏天运行它们,我想夏季档案一个是 OK,另一个是 1:00 而不是 0:00。

谷歌搜索一下经过更多的尝试和错误,我想出了这个:

TZ=ZZZ-1 touch -cmt 201606242359.60 summer-file
TZ=ZZZ-1 touch -cmt 201611242359.60 winter-file

它按照预期正确地将两个文件的日期设置为 0:00。问题是...我真的不知道我在这里做什么。将时区更改为ZZZ-1,因为……魔法?或者...它是 -1 因为我们目前处于 UTC+1?明年三月,当我们切换到 DST 时,我们的服务器将比 UTC 早 2 小时,而不是 1 小时。我应该使用那个时间ZZZ-2,还是仍然ZZZ-1可以? (我会更改服务器日期并尝试自己,但我不允许这样做,这会破坏一些东西)。

如果我ZZZ-2在夏天需要......是否可以设置另一种表达方式TZ=,以使我的触摸在全年和任何目标日期都能正常工作?我尝试过GMTUTC UTC0,他们都没有工作(他们都将我的夏季档案设置为 1:00)。

命令以编程方式生成(在 Siebel CRM 中),我想我可以检查当前日期并设置TZ=ZZZ-1TZ=ZZZ-2根据需要(如果需要),但我宁愿只有一种表达方式。

另外,请注意我们的服务器运行的是 Solaris 10,以防出现任何差异。它通常会...

相关内容