Skip to content

Commit ad0786f

Browse files
committed
add datetime, itertools and sax
1 parent f58e9ea commit ad0786f

3 files changed

Lines changed: 86 additions & 0 deletions

File tree

py3/commonlib/use_datetime.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/usr/bin/env python3
2+
# -*- coding: utf-8 -*-
3+
4+
from datetime import datetime, timedelta, timezone
5+
6+
# 获取当前datetime:
7+
now = datetime.now()
8+
print('now =', now)
9+
print('type(now) =', type(now))
10+
11+
# 用指定日期时间创建datetime:
12+
dt = datetime(2015, 4, 19, 12, 20)
13+
print('dt =', dt)
14+
15+
# 把datetime转换为timestamp:
16+
print('datetime -> timestamp:', dt.timestamp())
17+
18+
# 把timestamp转换为datetime:
19+
t = dt.timestamp()
20+
print('timestamp -> datetime:', datetime.fromtimestamp(t))
21+
print('timestamp -> datetime as UTC+0:', datetime.utcfromtimestamp(t))
22+
23+
# 从str读取datetime:
24+
cday = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
25+
print('strptime:', cday)
26+
27+
# 把datetime格式化输出:
28+
print('strftime:', cday.strftime('%a, %b %d %H:%M'))
29+
30+
# 对日期进行加减:
31+
print('current datetime =', cday)
32+
print('current + 10 hours =', cday + timedelta(hours=10))
33+
print('current - 1 day =', cday - timedelta(days=1))
34+
print('current + 2.5 days =', cday + timedelta(days=2, hours=12))
35+
36+
# 把时间从UTC+0时区转换为UTC+8:
37+
utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc)
38+
utc8_dt = utc_dt.astimezone(timezone(timedelta(hours=8)))
39+
print('UTC+0:00 now =', utc_dt)
40+
print('UTC+8:00 now =', utc8_dt)

py3/commonlib/use_itertools.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/env python3
2+
# -*- coding: utf-8 -*-
3+
4+
import itertools
5+
6+
natuals = itertools.count(1)
7+
for n in natuals:
8+
print(n)
9+
if n >= 100:
10+
break
11+
12+
cs = itertools.cycle('ABC')
13+
t = 10
14+
for c in cs:
15+
print(c)
16+
t = t - 1
17+
if t == 0:
18+
break

py3/commonlib/use_sax.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#!/usr/bin/env python3
2+
# -*- coding: utf-8 -*-
3+
4+
from xml.parsers.expat import ParserCreate
5+
6+
class DefaultSaxHandler(object):
7+
def start_element(self, name, attrs):
8+
print('sax:start_element: %s, attrs: %s' % (name, str(attrs)))
9+
10+
def end_element(self, name):
11+
print('sax:end_element: %s' % name)
12+
13+
def char_data(self, text):
14+
print('sax:char_data: %s' % text)
15+
16+
xml = r'''<?xml version="1.0"?>
17+
<ol>
18+
<li><a href="/python">Python</a></li>
19+
<li><a href="/ruby">Ruby</a></li>
20+
</ol>
21+
'''
22+
23+
handler = DefaultSaxHandler()
24+
parser = ParserCreate()
25+
parser.StartElementHandler = handler.start_element
26+
parser.EndElementHandler = handler.end_element
27+
parser.CharacterDataHandler = handler.char_data
28+
parser.Parse(xml)

0 commit comments

Comments
 (0)