真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python的UTC函數(shù) localtime函數(shù)python

python中datetime怎么設(shè)置時(shí)區(qū)

如果你的程序要考慮時(shí)區(qū),可以使用pytz。datetime模塊中有tzinfo相關(guān)的東西,但是它是一個(gè)抽象類,文檔上說(shuō):

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括古藺網(wǎng)站建設(shè)、古藺網(wǎng)站制作、古藺網(wǎng)頁(yè)制作以及古藺網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,古藺網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到古藺省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

tzinfo is an abstract base clase, meaning that this class should not be instantiated directly. You need to derive a concrete subclass, and (at least) supply implementations of the standard tzinfo methods needed by the datetimemethods you use. The datetime module does not supply any concrete subclasses of tzinfo.

上面是說(shuō)tzinfo是一個(gè)抽象類,不應(yīng)該被直接實(shí)例化。你需要派生子類,提供相應(yīng)的標(biāo)準(zhǔn)方法。datetime模塊并不提供tzinfo的任何子類。

所以你可能會(huì)使用pytz這個(gè)模塊。通過(guò)easy_install可以安裝。目前它的最新文檔在這里。

關(guān)于時(shí)區(qū)使用的幾點(diǎn)想法:

1. 如果你的網(wǎng)站可能有來(lái)自其它時(shí)區(qū)的,可能你要考慮這個(gè)問(wèn)題。都是一個(gè)地區(qū)的話,還要看服務(wù)器是否與用戶在一個(gè)地區(qū),如果不在,也要考慮。

2. 因此,基本上要考慮服務(wù)器時(shí)區(qū)與用戶時(shí)區(qū)。服務(wù)器時(shí)區(qū)可以配置在系統(tǒng)中,全局生效。而用戶時(shí)區(qū)則與用戶相關(guān),可以由用戶自已進(jìn)行設(shè)置。

3. 在生成相關(guān)時(shí)間對(duì)象時(shí)要加入時(shí)區(qū)的信息,并在輸出時(shí)進(jìn)行合適的轉(zhuǎn)換。

而pytz提供了創(chuàng)建某個(gè)時(shí)區(qū)對(duì)象的方法,如,中國(guó)時(shí)區(qū):

import pytz

pytz.country_timezones('cn')

['Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing', 'Asia/Urumqi', 'Asia/Kashgar']

可以看到,中國(guó)的時(shí)區(qū)可能有:'Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing',最后兩個(gè)不知道是什么。我們可能使用的'Asia/Shanghai'比較多。

因此可以創(chuàng)建一個(gè)時(shí)區(qū)對(duì)象:

tz = pytz.timezone('Asia/Shanghai')

然后在創(chuàng)建時(shí)間對(duì)象時(shí)進(jìn)行指定:

import datetime

datetime.datetime.now(tz)

datetime.datetime(2009, 2, 21, 15, 12, 33, 906000, tzinfo=DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD)

datetime.datetime(2009, 2, 21, 15, 12, 33, tzinfo=tz)

datetime.datetime(2009, 2, 21, 15, 12, 33, tzinfo=DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD)

datetime.date(2009, 2, 21, tzinfo=tz)

Traceback (most recent call last):

File "stdin", line 1, in module

TypeError: 'tzinfo' is an invalid keyword argument for this function

datetime.time(15, 12, 33, tzinfo=tz)

datetime.time(15, 12, 33, tzinfo=DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD)

從上面可以看出now(), datetime(), time()都是可以指定tzinfo信息的,而date是不行的,不知道為什么。所以最好的方法是內(nèi)部使用datetime對(duì)象,需要時(shí)進(jìn)行時(shí)區(qū)轉(zhuǎn)換,然后再輸出。

時(shí)區(qū)轉(zhuǎn)換:

utc = pytz.utc

n = datetime.datetime.now(tz)

n

datetime.datetime(2009, 2, 21, 15, 16, 41, 843000, tzinfo=DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD)

new = n.astimezone(utc)

new

datetime.datetime(2009, 2, 21, 7, 16, 41, 843000, tzinfo=UTC)

utc.normalize(n.astimezone(utc))

datetime.datetime(2009, 2, 21, 7, 16, 41, 843000, tzinfo=UTC)

python的time怎么使用

time模塊

time這個(gè)模塊提供各種與時(shí)間相關(guān)的函數(shù)。相關(guān)功能,可以參見(jiàn)datetime和calendat模塊。

此模塊并非所有平臺(tái)提供所有功能,因平臺(tái)而異。

以下是對(duì)一些術(shù)語(yǔ)和慣例的解釋

初始時(shí)間因平臺(tái)而異。對(duì)于Unix平臺(tái),初始時(shí)間是1970,01,01,00:00:00(UTC)。查看每個(gè)操作平臺(tái)的初始時(shí)間可以使用time.gmtime(0)函數(shù)。

在所有POSIX平臺(tái)上,從初始時(shí)間以來(lái)的秒數(shù)都不包括閏秒

該模塊中的函數(shù)可能不處理初始時(shí)間以前和遙遠(yuǎn)未來(lái)的日期和時(shí)間,未來(lái)的分界點(diǎn)對(duì)于32位操作系統(tǒng)是2038年。

UTC是協(xié)調(diào)世界時(shí)(以前稱為格林尼治標(biāo)準(zhǔn)時(shí)間,GMT)??s寫UTC不是一個(gè)錯(cuò)誤,而是英語(yǔ)和法語(yǔ)之間的妥協(xié)。

DST是夏令時(shí),在一年中的某些時(shí)候,時(shí)區(qū)通常會(huì)調(diào)整一個(gè)小時(shí)。DST規(guī)則是神奇的(由當(dāng)?shù)胤蓻Q定),每年都在變化。

各種實(shí)時(shí)函數(shù)的精度可能低于表示其值或參數(shù)的單位所建議的精度。

推薦學(xué)習(xí)《python教程》

python將獲取得到utc時(shí)間轉(zhuǎn)換成本地時(shí)間格式

你最好借助第三方的時(shí)間擴(kuò)展庫(kù)arrow

安裝擴(kuò)展:pip install arrow

使用方法請(qǐng)看文檔,針對(duì)問(wèn)題進(jìn)行如下解答:

utc = arrow.utcnow()#獲取utc時(shí)間

如果你已經(jīng)拿到utc時(shí)間為“2016-10-18 01:30:01”了

可以使用utc=arrow.get('2016-10-18 01:30:01')

然后轉(zhuǎn)換為本地時(shí)間

print utc.to('local').format("YYYY-MM-DD HH:mm:ss")

純手打,請(qǐng)采納

python datetime處理時(shí)間

python時(shí)間處理方法datetime(),下面就舉幾個(gè)代碼案例進(jìn)行說(shuō)明,代碼如下:

#?-*-?coding:?utf-8?-*-?

#?運(yùn)行環(huán)境:Python3.4

#datetime類

#datetime是date與time的結(jié)合體,包括date與time的所有信息。

#它的構(gòu)造函數(shù)如下:

#datetime.?datetime?(year,?month,?day[?,?hour[?,?minute[?,?second[?,?microsecond[?,?tzinfo]?]?]?]?]?)

#各參數(shù)的含義與date、time的構(gòu)造函數(shù)中的一樣,要注意參數(shù)值的范圍。

#?1.?datetime類定義的類屬性與方法:

#datetime.min、datetime.max:datetime所能表示的最小值與最大值;

#print:?datetime.max:?9999-12-31?23:59:59.999999

#print:?datetime.min:?0001-01-01?00:00:00

from??datetime??import??*?

import?time

print???('datetime.max:'?+str(datetime.max?))?

print???('datetime.min:'?+str(datetime.min))??

#datetime.resolution:datetime最小單位;

#print:?datetime.resolution:?0:00:00.000001

print???('datetime.resolution:'?+?str(datetime.resolution?))

#datetime.today():返回一個(gè)表示當(dāng)前本地時(shí)間的datetime對(duì)象;

#print:?today():?2012-09-12?19:37:50.721000

print???('today():'?+str(datetime.today()?))

#datetime.now([tz]):返回一個(gè)表示當(dāng)前本地時(shí)間的datetime對(duì)象,如果提供了參數(shù)tz,則獲取tz參數(shù)所指時(shí)區(qū)的本地時(shí)間;

#print:?now():?2012-09-12?19:37:50.738000

print???('now():'+str(?datetime.now()?))

#datetime.utcnow():返回一個(gè)當(dāng)前utc時(shí)間的datetime對(duì)象;

#print:?2012-09-12?11:37:50.739000

print???('utcnow():'?+str(datetime.utcnow()?))?

#datetime.fromtimestamp(timestamp[,?tz]):根據(jù)時(shí)間戮創(chuàng)建一個(gè)datetime對(duì)象,參數(shù)tz指定時(shí)區(qū)信息;

#print:?fromtimestamp(tmstmp):?2012-09-12?19:37:50.741000

print???('fromtimestamp(tmstmp):'?+str(datetime.fromtimestamp(time.time())?))

#datetime.utcfromtimestamp(timestamp):根據(jù)時(shí)間戮創(chuàng)建一個(gè)datetime對(duì)象;

#print:?utcfromtimestamp(tmstmp):?2012-09-12?11:37:50.742000

print???('utcfromtimestamp(tmstmp):'?+str(datetime.utcfromtimestamp(time.time()))?)

#datetime.combine(date,?time):根據(jù)date和time,創(chuàng)建一個(gè)datetime對(duì)象;

#print:?datetime.combine(date,time):??2012-09-12?19:46:05

d?=?date(2012,9,12)

from??datetime??import??*?

t?=?time(19,46,5)

print?('datetime.combine(date,time):?'+str(datetime.combine(d,t)))

#datetime.strptime(date_string,?format):將格式字符串轉(zhuǎn)換為datetime對(duì)象;

#print:?2007-03-04?21:08:12

print?(datetime.strptime("2007-03-04?21:08:12",?"%Y-%m-%d?%H:%M:%S"))

#2.?datetime類提供的實(shí)例方法與屬性

dt?=?datetime.strptime("2012-09-12?21:08:12",?"%Y-%m-%d?%H:%M:%S")

#print:?2012?9?12?21?8?12?0?None

print?(dt.year)

print(dt.month)

print(dt.day)

print(dt.hour)

print(dt.minute)

print(dt.second)

print(dt.microsecond)

print(dt.tzinfo)

print?(dt.date())

print?(dt.time())

print?(dt.replace(year?=?2013))

print?(dt.timetuple())

print?(dt.utctimetuple())

print?(dt.toordinal())

print?(dt.weekday())

print?(dt.isocalendar())

#print?dt.isoformat([sep])

#datetime.?ctime?():返回一個(gè)日期時(shí)間的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple()));

#3.?格式字符串

#?datetime.?strftime?(format)

#?%a?星期的簡(jiǎn)寫。如?星期三為Web

#?%A?星期的全寫。如?星期三為Wednesday

#?%b?月份的簡(jiǎn)寫。如4月份為Apr

#?%B月份的全寫。如4月份為April?

#?%c:??日期時(shí)間的字符串表示。(如:?04/07/10?10:43:39)

#?%d:??日在這個(gè)月中的天數(shù)(是這個(gè)月的第幾天)

#?%f:??微秒(范圍[0,999999])

#?%H:??小時(shí)(24小時(shí)制,[0,?23])

#?%I:??小時(shí)(12小時(shí)制,[0,?11])

#?%j:??日在年中的天數(shù)?[001,366](是當(dāng)年的第幾天)

#?%m:??月份([01,12])

#?%M:??分鐘([00,59])

#?%p:??AM或者PM

#?%S:??秒(范圍為[00,61],為什么不是[00,?59],參考python手冊(cè)~_~)

#?%U:??周在當(dāng)年的周數(shù)當(dāng)年的第幾周),星期天作為周的第一天

#?%w:??今天在這周的天數(shù),范圍為[0,?6],6表示星期天

#?%W:??周在當(dāng)年的周數(shù)(是當(dāng)年的第幾周),星期一作為周的第一天

#?%x:??日期字符串(如:04/07/10)

#?%X:??時(shí)間字符串(如:10:43:39)

#?%y:??2個(gè)數(shù)字表示的年份

#?%Y:??4個(gè)數(shù)字表示的年份

#?%z:??與utc時(shí)間的間隔?(如果是本地時(shí)間,返回空字符串)

#?%Z:??時(shí)區(qū)名稱(如果是本地時(shí)間,返回空字符串)

#?%%:??%%?=?%

dt?=?datetime.now()

#print:?(%Y-%m-%d?%H:%M:%S?%f):??2012-09-12?23:04:27?145000

print?('(%Y-%m-%d?%H:%M:%S?%f):?'+?str(dt.strftime('%Y-%m-%d?%H:%M:%S?%f')))

#print:?(%Y-%m-%d?%H:%M:%S?%p):??12-09-12?11:04:27?PM

print?('(%Y-%m-%d?%H:%M:%S?%p):?'+str(dt.strftime('%y-%m-%d?%I:%M:%S?%p')))

#print:?%a:?Wed?

print?('%%a:?%s?'?%?dt.strftime('%a'))

#print:?%A:?Wednesday

print?('%%A:?%s?'?%?dt.strftime('%A'))

#print:?%b:?Sep?

print?('%%b:?%s?'?%?dt.strftime('%b'))

#print:?%B:?September

print?('%%B:?%s?'?%?dt.strftime('%B'))

#print:?日期時(shí)間%c:?09/12/12?23:04:27

print?('日期時(shí)間%%c:?%s?'?%?dt.strftime('%c'))

#print:?日期%x:09/12/12

print?('日期%%x:%s?'?%?dt.strftime('%x'))

#print:?時(shí)間%X:23:04:27

print?('時(shí)間%%X:%s?'?%?dt.strftime('%X'))

#print:?今天是這周的第3天

print?('今天是這周的第%s天?'?%?dt.strftime('%w'))

#print:?今天是今年的第256天?

print?('今天是今年的第%s天?'?%?dt.strftime('%j'))

#print:?今周是今年的第37周

print?('今周是今年的第%s周?'?%?dt.strftime('%U'))

上面代碼案例運(yùn)行結(jié)果如下:

atetime.max:9999-12-31?23:59:59.999999

datetime.min:0001-01-01?00:00:00

datetime.resolution:0:00:00.000001

today():2014-05-04?15:58:18.141186

now():2014-05-04?15:58:18.193146

utcnow():2014-05-04?07:58:18.243958

fromtimestamp(tmstmp):2014-05-04?15:58:18.291558

utcfromtimestamp(tmstmp):2014-05-04?07:58:18.342550

datetime.combine(date,time):?2012-09-12?19:46:05

2007-03-04?21:08:12

2012

9

12

21

8

12

None

2012-09-12

21:08:12

2013-09-12?21:08:12

time.struct_time(tm_year=2012,?tm_mon=9,?tm_mday=12,?tm_hour=21,?tm_min=8,?tm_sec=12,?tm_wday=2,?tm_yday=256,?tm_isdst=-1)

time.struct_time(tm_year=2012,?tm_mon=9,?tm_mday=12,?tm_hour=21,?tm_min=8,?tm_sec=12,?tm_wday=2,?tm_yday=256,?tm_isdst=0)

734758

2

(2012,?37,?3)

(%Y-%m-%d?%H:%M:%S?%f):?2014-05-04?15:58:19?326295

(%Y-%m-%d?%H:%M:%S?%p):?14-05-04?03:58:19?PM

%a:?Sun?

%A:?Sunday?

%b:?May?

%B:?May?

日期時(shí)間%c:?Sun?May??4?15:58:19?2014?

日期%x:05/04/14?

時(shí)間%X:15:58:19?

今天是這周的第0天?

今天是今年的第124天?

今周是今年的第18周

python中的time模塊

time模塊是python專門用來(lái)處理時(shí)間的內(nèi)建庫(kù)。

下面我們來(lái)記錄一些基本使用方法。

ps: 用到了一些概念,比如unix時(shí)間戳,感興趣的同學(xué)自行百度。

下文參考他人博客內(nèi)容, 傳送門

time.time()函數(shù)獲取的是Unix時(shí)間戳。

返回的是一個(gè)float類型的數(shù)值。

在python中的time模塊中定義了一個(gè)叫struct_time的元組,是用來(lái)構(gòu)建時(shí)間對(duì)象的。

struct_time元組共9個(gè)元素組成,如下圖:

這個(gè)函數(shù)可以接受一個(gè)unix時(shí)間戳,然后轉(zhuǎn)換為struct_time。

如果不傳入second參數(shù),則會(huì)返回當(dāng)前時(shí)間的時(shí)間戳的struct_time對(duì)象

再試試傳入當(dāng)前時(shí)間的時(shí)間戳,是否能得到上面的struct_time呢?

和我們預(yù)期的結(jié)果一致。

和localtime函數(shù)類似,默認(rèn)情況gmtime函數(shù)獲取當(dāng)前時(shí)間的utc時(shí)間。

返回當(dāng)前時(shí)間的utc時(shí)間的struct_time對(duì)象。

也可以傳入任意的unix時(shí)間戳,來(lái)得到utc時(shí)間。

將一個(gè)時(shí)間戳struct_time對(duì)象轉(zhuǎn)換為時(shí)間戳。

傳入一個(gè)struct_time對(duì)象,返回"Sun Jun 20 23:21:05 1993"這種格式的字符串。不傳參數(shù),返回當(dāng)前時(shí)間的這種格式的字符串。

傳入格式和struct_time,返回按照f(shuō)ormat格式格式化后的時(shí)間字符串。

格式占位符可以參考下圖:

將字符串時(shí)間轉(zhuǎn)為struct_time,time.strftime()的逆向操作。


網(wǎng)站題目:python的UTC函數(shù) localtime函數(shù)python
網(wǎng)站地址:http://weahome.cn/article/hjjggd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部