2015-02-07 69 views
2

我想在windows批处理脚本中编写时间转换器。当我想要设置约会时(我想将其放入我的电子邮件内容中)时将使用它。该脚本应该能够打印出以下行(输出到理想的剪贴板,文件是好的,太):windows批处理脚本中的时间转换器

Beijing (China) TUE, January 16, 2016 at 8:00 AM 
Seattle (U.S.A) MON, January 15, 2016 at 4:00 PM 

首先,我发现窗户date实用程序可以打印出日期和时间很好地和我想要利用它。然后,在当前时间,我发现使用

tzutil /s "Pacific Standard Time_dstoff" 
tzutil /s "China Standard Time" 

将是一个简单的方法来获取日期,然后打印出来。它将系统时间更改为太平洋时间,然后将其更改回中国标准时间。

但是,由于我没有根权限来更改系统时间,我想知道什么是对任何给定的新约会日期时间进行时间转换的最佳方法。假设我想在北京时间2/19/2016 08:00设置一个预约,我怎么能轻松地将下列代码插入我的剪贴板?

Beijing (China) TUE, February 19, 2016 at 8:00 AM 
Seattle (U.S.A) MON, February 18, 2016 at 4:00 PM 
+0

批处理日期是地狱,因为除了任意字符串或数字以外没有任何理解它们。如果我必须这样做,我会使用VBScript或PowerShell,并强烈偏好后者。 – 2015-03-17 20:25:36

+0

@BaconBits,OKay,那该怎么办? – Daniel 2015-03-18 00:26:19

+0

我可能会从[this](http://stackoverflow.com/a/20101121/696808)开始。请查看[MSDN](https://msdn.microsoft.com/zh-cn/library/system.timezoneinfo%28v=vs.110%29.aspx)获取关于该类的文档。使用'[System.TimeZoneInfo] :: GetSystemTimeZones()'枚举时区。但是,如果您还没有安装Powershell 3或4,可能会很痛苦。我不相信所有这些类都暴露了。 – 2015-03-18 15:31:42

回答

1

像Python这样的语言能工作吗?

from datetime import datetime 
from datetime import timedelta 

now = datetime.now() 

# This assumes Beijing is the local timezone 
print(now.strftime('Beijing (China) %a, %B %d at %I:%M %p')) 

# Seattle is 15 hours behind Beijing 
now -= timedelta(hours = 15) 
print(now.strftime('Seattle (U.S.A) %a, %B %d at %I:%M %p'))