python 设置系统时间_Python模块更改系统日期和时间

How can I change System Date, Time, Timezone in Python? Is there any module available for this?

I don't want to execute any system commands

I want one common solution, which should work on both Unix and Windows.

解决方案import sys

import datetime

time_tuple = ( 2012, # Year

9, # Month

6, # Day

0, # Hour

38, # Minute

0, # Second

0, # Millisecond

)

def _win_set_time(time_tuple):

import pywin32

# http://timgolden.me.uk/pywin32-docs/win32api__SetSystemTime_meth.html

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

dayOfWeek = datetime.datetime(time_tuple).isocalendar()[2]

pywin32.SetSystemTime( time_tuple[:2] + (dayOfWeek,) + time_tuple[2:])

def _linux_set_time(time_tuple):

import ctypes

import ctypes.util

import time

# /usr/include/linux/time.h:

#

# define CLOCK_REALTIME 0

CLOCK_REALTIME = 0

# /usr/include/time.h

#

# struct timespec

# {

# __time_t tv_sec; /* Seconds. */

# long int tv_nsec; /* Nanoseconds. */

# };

class timespec(ctypes.Structure):

_fields_ = [("tv_sec", ctypes.c_long),

("tv_nsec", ctypes.c_long)]

librt = ctypes.CDLL(ctypes.util.find_library("rt"))

ts = timespec()

ts.tv_sec = int( time.mktime( datetime.datetime( *time_tuple[:6]).timetuple() ) )

ts.tv_nsec = time_tuple[6] * 1000000 # Millisecond to nanosecond

# http://linux.die.net/man/3/clock_settime

librt.clock_settime(CLOCK_REALTIME, ctypes.byref(ts))

if sys.platform=='linux2':

_linux_set_time(time_tuple)

elif sys.platform=='win32':

_win_set_time(time_tuple)

I don't have a windows machine so I didn't test it on windows... But you get the idea.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值