【问题标题】:Setting the system date in Python (on Windows)在 Python 中设置系统日期(在 Windows 上)
【发布时间】:2011-03-17 21:53:23
【问题描述】:

似乎有很多包用于获取/格式化当前日期,或从现在开始找出 n 个时间间隔的日期。但我一定忽略了在 Python 中设置日期的简单方法(如 Windows 的 date.exe)的存在。

这样的功能肯定存在吗?我一直无法在 Google、python 文档(日期时间、时间、操作系统等)或堆栈溢出上找到任何内容。 TIA。

编辑:总而言之,this 页面告诉您如何获取它们。

您可以使用任一设置它们

win32api.SetSystemTime(year,month,dayOfWeek,day,hour,minute,second,millseconds)

os.system("date " + mm/dd/yy)

date.exe 似乎也接受 mm-dd-yy、4 位数年份和可能的其他选项。

为了简单起见,我更喜欢后者。

【问题讨论】:

  • 来自 MSDN:The wDayOfWeek member of the SYSTEMTIME structure is ignored. date 命令变化无常,会根据区域设置中断,因此如果您希望代码在多个环境中工作,最好避免使用它。
  • SetSystemTime 需要 UTC 时间的参数。 OP 链接到的页面提到了datetime.datetime.now(),但如果将结果传递给win32api.SetSystemTime,则需要使用datetime.datetime.utcnow()

标签: python datetime date


【解决方案1】:

你能不能不用 os.system("shell_cmd_in_here") 来调用linux cmd:

date -s "2 OCT 2010 18:00:00"

这会将系统日期设置为:例如 2010 年 10 月 2 日 18:00:00。

完全是这样的:

os.system('date -s "2 OCT 2010 18:00:00"')

【讨论】:

  • 一个 sudo,在 Windows 上?另外,你有什么保证“日期”甚至检查标准输入?
  • 抱歉,您以为您使用的是 linux。您可以对 Windows 执行相同操作,请参阅此链接以了解如何通过命令提示符 ss64.com/nt/date.html 设置日期。只需在 os.system() 调用中添加“设置日期”cmd。
【解决方案2】:

您应该可以使用win32api.SetSystemTime。这是pywin32 的一部分。

【讨论】:

  • 奇怪的是python默认没有这样的东西。
  • 他们为什么要让这个函数需要一周中的某一天参数?如果您可以只传递一个 Python 日期时间对象,那就太好了。
【解决方案3】:

在 Windows 上,您基本上可以使用操作系统

获取日期:

os.system("date")

获得时间:

os.system("time")

设定日期:

os.system("date "+str(mm-dd-yyyy))

设定时间:

os.system("time "+str(hh:mm:ss.ms))

您应该以管理员身份使用您使用的任何 cmd、vscode 等运行脚本。

【讨论】:

    猜你喜欢
    • 2019-08-28
    • 1970-01-01
    • 2014-07-22
    • 2017-08-22
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 2023-03-02
    相关资源
    最近更新 更多