Python Times

DateTime模块

 

>>> import datetime
>>> d1 = datetime.datetime(2005, 2, 16)
>>> d2 = datetime.datetime(2004, 12, 31)
>>> (d1 - d2).days
47

上例演示了计算两个日期相差天数的计算。

import datetime
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (endtime - starttime).seconds

上例演示了计算运行时间的例子,以秒进行显示。

>>> d1 = datetime.datetime.now()
>>> d3 = d1 + datetime.timedelta(hours=10)
>>> d3.ctime()

上例演示了计算当前时间向后10小时的时间。

其本上常用的类有:datetime和timedelta两个。它们之间可以相互加减。每个类都有一些方法和属性可以查看具体的值,如 datetime可以查看:天数(day),小时数(hour),星期几(weekday())等;timedelta可以查看:天数(days),秒数 (seconds)等

 

Time模块:

模块名
    time - 此模块提供多种处理时间值的函数

(内建)

描述
    有两种时间的标准描述。

    一种是从时间上的一点(纪元)开始所经历的秒数,以通用协调时表示,又称为格林尼治标准时间。形式上可以是一个整数或者浮点数(用以表示比秒更高的精度)。做为开始的这个时间点是系统定义的,在UNIX系统上,通常是1970年1月1日。具体的值可以通过调用gmtime(0)得到。

    另一种表示方法是一个含有9个整数的序列,用来表示当地时间。
这9个整数分别为:
年,4个数字,比如1998
月,1-12
日,1-31
小时,0-23
分钟,0-59
秒,0-59
星期,0-6,0表示周一。
儒略历(儒略·恺撒订定的历法) 其实就是这一天是所在年的第几天 1-366
夏令时 -1,0,1
如果夏令时为0,时间以通常时区表示。
如果夏令时为1,说明是夏令时时区的时间。
如果夏令时为-1,(不明白。。。)

变量
    timezone 通用协调时间和本地标准时间的差值,以秒为单位。
    altzone 通用协调时间和本地夏令时的差值
    daylight 标志,本地时间是否反映夏令时。
    tzname (标准时区名,夏令时时区名)

函数
    time() 以浮点数返回纪元至今以来的秒数。
    clock() 以浮点数返回CPU开始这个process的时间,(或者至上次调用这个函数的时间)
    sleep() 延迟一段以浮点数表示的秒数。
    gmtime() 把以秒表示的时间转换为通用协调时序列
    localtime() 把秒时转换为本地时序列
    asctime() 将时间序列转换成文本描述
    ctime() 将秒时转换成文本描述
    mktime() 将本地时序列转换成秒时
    strftime() 以指定格式将序列时转为文本描述
    strptime() 以指定格式从文本描述中解析出时间序列
    tzset() 改变当地时区值

 

python常用的时间方法

我们先导入必须用到的一个module
>>> import time
设置一个时间的格式,下面会用到
>>>ISOTIMEFORMAT=’%Y-%m-%d %X’
看一下当前的时间,和其他很多语言相似这是从epoch(1970 年 1 月 1 日 00:00:00)开始到当前的秒数。
>>> time.time()
1180759620.859
上面的看不懂,换个格式来看看
>>> time.localtime()
(2007, 6, 2, 12, 47, 7, 5, 153, 0)
localtime返回tuple格式的时间,有一个和它类似的函数叫gmtime(),2个函数的差别是时区,gmtime()返回的是0时区的值,localtime返回的是当前时区的值。
>>> time.strftime( ISOTIMEFORMAT, time.localtime() )
‘2007-06-02 12:54:29′
用上我们的时间格式定义了,使用strftime对时间做一个转换,如果取现在的时间,time.localtime() 可以不用。

>>> time.strftime( ISOTIMEFORMAT, time.localtime( time.time() ) )
‘2007-06-02 12:54:31′
>>> time.strftime( ISOTIMEFORMAT, time.gmtime( time.time() ) )
‘2007-06-02 04:55:02′
上面展示了gmtime和localtime的区别。
查看时区用
>>> time.timezone
-28800
上面的值是一个秒值,是当前时区和0时区相差的描述,-28800=-8*3600,即为东八区。

帖几个简单的函数

def ISOString2Time( s ):
    
'''
    convert a ISO format time to second
    from:2006-04-12 16:46:40 to:23123123
    把一个时间转化为秒
    
'''
    
return time.strptime( sISOTIMEFORMAT )
def Time2ISOString( s ):
    
'''
    convert second to a ISO format time
    from: 23123123 to: 2006-04-12 16:46:40
    把给定的秒转化为定义的格式
    
'''
    
return time.strftime( ISOTIMEFORMATtime.localtime( float( s ) ) )
def dateplustime( dt ):
    
'''
    d=2006-04-12 16:46:40
    t=2小时
   return  2006-04-12 18:46:40
   计算一个日期相差多少秒的日期,time2sec是另外一个函数,可以处理,3天,13分钟,10小时等字符串,回头再来写这个,需要结合正则表达式。
    
'''
    
return Time2ISOString( time.mktime( ISOString2Time( d ) )+time2sec( t ) )
def dateMinDate( d1d2 ):
    
'''
    minus to iso format date,return seconds
    计算2个时间相差多少秒
    
'''
    
d1=ISOString2Time( d1 )
    
d2=ISOString2Time( d2 )
    
return time.mktime( d1 )-time.mktime( d2 )
### Python 中使用 Times New Roman 字体 #### Matplotlib 文本样式配置 为了在Matplotlib图表中实现部分文本斜体显示而其他部分保持正常,并全部采用Times New Roman字体,可以按照如下方法操作: 对于全局应用Times New Roman字体的情况,通过修改`rcParams`参数来指定默认字体家族为'Times New Roman'即可[^1]。 ```python import matplotlib.pyplot as plt plt.rcParams["font.family"] = 'Times New Roman' ``` 当涉及到混合不同风格的文字(比如一部分是常规体另一部分是斜体)时,则可以在字符串内部利用LaTeX语法标记特定区域的格式化属性。例如,在标签或标题内嵌入`\it{}`命令用于定义斜体范围;而对于非斜体的部分则不需要额外包裹任何特殊符号。 #### Word 表格单元格字体调整 针对Word文档内的表格元素定制字体样式的需求,借助于`python-docx`库能够灵活控制各单元格里的字符呈现效果。具体来说,可以通过访问目标单元格对象并调用其`.paragraphs[]`集合下的`.runs.add_run()`方法向其中添加具有自定义样式的文本片段。下面给出了一段示范程序说明怎样把某个单元格的内容设定成既含有中文宋体又带有英文Times New Roman字型组合的形式[^2]。 ```python from docx import Document from docx.shared import Pt document = Document() table = document.tables[0] cell = table.cell(3, 0).paragraphs[0].add_run('这里是宋体') cell.font.name = u'宋体' cell = table.cell(3, 0).paragraphs[0].add_run(' Here is Times New Roman.') cell.font.name = u'Times New Roman' cell._element.rPr.rFonts.set(qn('w:eastAsia'), u'Times New Roman') for paragraph in table.cell(3, 0).paragraphs: style = paragraph.style font = style.font font.size = Pt(9) # 小五号大约等于9pt document.save('example.docx') ``` 注意这里还设置了字号大小以满足题目描述的要求——即小五号字,通常对应到Pt单位约为9磅左右。 #### Matplotlib 中英文字体混排方案 最后关于在同一张图表上同时展现两种语言且各自匹配相应字体的问题,解决方案之一就是扩展之前提到过的`rcParams`设置策略。除了声明基础字体列表外,还需引入适合处理数学表达式的附加组件以便更好地兼容多语种环境。这段代码展示了如何让中文选用SimSun(宋体),而英语沿用Times New Roman作为主要输出形式[^3]。 ```python import matplotlib.pyplot as plt from matplotlib import rcParams rcParams['font.family'] = ['SimSun', 'Times New Roman'] rcParams['mathtext.fontset'] = 'stix' x = [1, 2, 3, 4] y = [10, 20, 30, 40] plt.figure(figsize=(8,6)) plt.plot(x,y,'b-o') plt.xlabel(u'横坐标 (X)', fontsize=14) plt.ylabel(r'$\mathrm{\mu g}\cdot\mathrm{L}^{-1}$', fontsize=14) plt.title(u'Matplotlib中英文字体混排实例', fontsize=16) plt.show() ``` 上述例子不仅实现了预期的功能需求,同时也提供了一个直观的学习样本帮助理解这些技术细节的应用方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值