今天在弄个自动关机小脚本的时候,遇到了时间转换的问题,也难怪,以前没学过,

不能怪我不会哦!

首先,先学会打印出当前时间的几种方式

参考开源社区:  http://my.oschina.net/u/1032854/blog/198179#OSC_h1_3

菜鸟编程:   http://www.runoob.com/python/python-date-time.html

1. time.ctime()函数—输出固定的日期格式

 from time import ctime

 # 该函数只能以 " 星期 月 日 时:分:秒 年 " 的格式显示日期
print ctime()

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdgAAAAWCAIAAADsLhq+AAACQ0lEQVR4nO2cQW7EIAxFc5buu+35OVoXlUYpxOZjJ4FE761ag78dGH/NtNJsX98/GwAATAQjBgCYDEYMADCZPyMupZRS9vE2ohPIzZQLU3Y4GzLisbrdLEshptzNTd6O31XmFjLPC7AQKxjxlHGa4mjdukMNV+lh5W7uPnKFsrI6qgzwJKYbcWbIw1Sj205yZryd3G7drmy3aFi5expKG0PKmVvIPC/AcuhG7EzF9n8SRi3AiuS70nGm/VLBzFldp1xF/EsZYvR+h4IAT6Uy4vaHP0rDXqRdPcUCRIMYLaq04cfDmqL1OIL+FWSUnYh/KTpV52LPehDgqShGfDg/4q8+/igqq7G6laCVlTcdK3h4zkpuxYnKVq5VaJRLe461BLAKuhHvs/RVn4xypm6VYiVmJlyxj+62rn57GgFlP7cY+O353Z7Vc6YlgIUYekd8+Lp3BqxLRjlT12rjMB4QtHJP7Hk77zSUc7buSNcPn4YTbJvUuwJYCIzYyb1B8KwS+VsQc0cbru40UPeGkwSYTOBvxBXVqr/5MNeK+Mr5ut3czGw7glf0fMNp7FcVWVEqdguZ5wVYjr0Rt3y2OUtWulLdkhKVw3W7T2S1p+Nrxur6udcpKwrOZkf8np4BVufzXRP7l/Lhy1qZlmL/y+WQdqcVsZRjdatcKysz3l3ZWF3xFk5XVhR8TUv/hp4BVudNX/rDQALAI3mNEfPOCACeyqON2P/MCwDwDN5kxLPbAQAI8WgjBgB4AxgxAMBkMGIAgLn8AoU5LSdTMzbfAAAAAElFTkSuQmCC" alt="" />

2. time.localtime()函数—同time.ctime()都是按固定顺序输出日期

 from time import localtime

 # 也是以固定顺序输出—"年 月 日 时:分:秒"
print "%d/%d/%d %d:%d:%d" % localtime()[0:6]

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgcAAAAUCAIAAACWHglwAAABj0lEQVR4nO3WW27DMAxEUe9/VV5afwKjlqzR8GEUbe/5aiwNpTIAneMAAAAAAOX8Jrp6bUhU1kUqWX0rp1q6G07xxLlO2dx3BAA35yS3Gq38uLk9K1KiVK4bfuXouV139msC+KeGeRH6eMiJs83Om1uy+lZasRtm8WKvotl0NwDgOO5DdjVwRUQ/dA71z9VLLXMw0Q2/YH2bn+WtACDj8YfnvOEx5TwUh26vER399TmY64ZTs74nmuWtACBsHr7Xx/mPObh6KGb6Nj4ws9slR283Qqu5/6iSBYDR40ypzMGusf7S/NXauxFaTfSqmAWAm9U0EZPRfHg9948QNwxl03Ow2A2neO4Cfv10nwFAzaD6WyFRTVwylM3NwXo3nPpd2/wsbwUAFv2zdFgN/Q51snr+5rL+hu25iVuZRzRWrnxHADA6F8SGVRGnuJOqZ/0920Mbu6FX3+uzcysA+NjOwWGPKLKt76fqWXOPOPGNbujVl/rs3AoAflhlSDHgAOCv4a0AAAAAAAAAAAAAAL/VF5Kzc0w2AOFxAAAAAElFTkSuQmCC" alt="" />

3. datetime.datetime—输出固定的日期格式

【不过是精确到微秒10的-6方秒】

 from datetime import datetime

 # 以年-月-日 时:分:秒的格式显示
# print datetime.now()
print datetime.today()

4. time.strftime()函数—同上

 from time import strftime

 # 格式化成 2016-08-31 10:53:42的形式
print strftime("%Y-%m-%d %H:%M:%S")

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhIAAAAXCAIAAADRDTFyAAACK0lEQVR4nO3cTU7DMBCG4ZyFPVvOXzXtghYJuBG7KPXP5/FMEhTrfVbFscf2LGaogpjuz9+394/ptC6v/vs4ADC6+9e52wYA4FC3k3/bAAAc6vb8oW0AAKzmB20DAGCWtA39ern58rn5yPfiOngqd+RJ3sgY3Ldvc1UtgjsbzSWRPAMYx7pt2OtRb7XSa7XIqbaKbI9pWes+c74wWR7PRv45HhnAUJa2kZSDrh8nWSiba4XgqdyR9Y3swffIRnNTR+RJto1gZABDmR/ftXcboo4UR7oGjfS+xlO59zom4FZtIzhfJzZ4EgDjqLWN4i+Y+YTiKstgca9kU8u+lkMWIxsPGamPxmzYt7BfpytsPt+SK3daAJxbsW2I8p1/yBfWBmvlRlRDy76ijFrqrC6CkfpoyUZzWvGom9+olvbe4ADGN3+mbaNYFw4odkXNfd2RixHEARx0ihyZLM7RCe86VTOZ7iQDGMf1tW3oeqFH9OAy3lV69L6RyPqQ4gC9MZuDm2+xftSV55w7IIBhrduGqAvGYrd5odRrDyjB520bkcj0DABVS9vQdSF5WpssBptrHfvuF1nfyOhE2dAnj4QCMJo5axuJZaZ4lMypjeu1NXrtfpH1jezxt903ng3LjZI5edhIWgCcW/5tw1iVitGaj3zlxlIH94g87dM2gvsGs2G5UTLnUqGDABjTNftLKgAAqmgbAIAOtA0AQAfaBgCgA20DANBB/AdcAAASf5o1qtRKLoGiAAAAAElFTkSuQmCC" alt="" />

当然,你也可以这样格式化日期

from time import strftime

# 格式化成 Wed Aug 10:58:25 2016 形式
print strftime("%a %b %H:%M:%S %Y")

另一种格式

在这里,我们要用到 "年/月/日 时:分:秒" 的格式, 所以就选择后者time.strftime()!

-|---->-----------------------------------------------------------------------------------------------------<<<---

在开始前,有必要给大家介绍下python中时间日期格式化符号:

  • %y 两位数的年份表示(00-99)
  • %Y 四位数的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月内中的一天(0-31)
  • %H 24小时制小时数(0-23)
  • %I 12小时制小时数(01-12)
  • %M 分钟数(00=59)
  • %S 秒(00-59)

1. 字符串(string)转化为datetime.datetime

这里我们用到datetime.datetime.strptime()

 # 字符串转化为datetime.datetime
import datetime str = "2016/8/31" # Y:(Year)年, m:(month)月, d:(day)日
dt = datetime.datetime.strptime(str, "%Y/%m%d")
pritn dt

str 2 datetime

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcwAAAAXCAIAAAAJN+iJAAABYUlEQVR4nO3WQXLDIAwFUO5/qhytm0ybBCOwCAnuvLdKsf0RzEjTUgAA4NpuD84+/X0hkby0qnRyCU80k3zF25hJBkp57qK6l8afnk1eV9W7kscz96l5n2SglIcuSvxZwpHU/XZdVenk+ER71rxnMtBU91XraWIxUUO6qvReucB1NV8xGTj28t/K0iF7qwTfBi+0Xj5MHiwyMU3WDawrJgMHgmFX/6g/bC22Jl0wCkf2PfywmxwctnuiWFzzG29yt2RgyOHQmW/gF6eKCfZNJx8mBAWcDWzVPH+T2yYDfa1xUy+ebeCXjh1s0XjfmeS4yKCAwajWyuBN/ptk4E8wpAbbbHBxz+Y3ZFckA3fBhK2ftl4OFrvfJvZdlxyfaM+a90wG7m4NwQutkJHwmcI+kxyfaHXNuZv8bjIQqbso7rQgpJs/U9snk0t2yHaT193kF5MBAAAAAAAAAAAAAACAt/gBqU362+zJdcIAAAAASUVORK5CYII=" alt="" />

2. datetime.datetime转化为时间戳

大部分语言里的时间戳是从格林尼治的1970年1月1日子夜(0点)到现在的总毫秒数,不过在python里则

是总秒数,由于我们是东八区,所以对我们来说是从8点开始算起的,要查看起始时间,可以用上面说

到的time.ctime(0)函数! ! !

 # datetime.datetime 转化为时间戳

 # str转化为datetime.datetime
str = "2016/8/31"
dt = datetime.datetime.strptime(str, "%Y/%m/%d") # datetime.datetime转化为时间戳
time.mktime(dt.timetuple())

datetime 2 timestamp

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeYAAAAYCAIAAACgHslFAAABLUlEQVR4nO3WS47DIBAFwNz/VBxtthbETUObjBJVrWz6Y5TFU14vAAAAAAD4Iq211lr+/Frt3DVMB68925tPV2OVWYC5TH6Nz+NsJnbjwWlDZvPRaqwyC5ASR8z1fBpDY3P8unrJ/OYTr5kb7s0CrKlH9jShtiO7uPmp6uolRTZwSjGyk6k6/gmd/htd3RzfWWQDv+BtvkzzLj7vGsZV09Te2Dzuf7twfJhWY5VZgDXT4AuyNc6mIJGnPXubgwuLbOAXHIrsTF5PL7C0uTt/+3r3ibi6en+RDZySyZe7nvh8O/L2NldCWWQD3+HxyI7zuqveNT++ufIaq8wCrDkX2Z2g4TObK9XM7xDPAjwgEzHPBmvXk/9ifXOlener5CwAAAAAAAAAAAAAAAD/4Q9Gu8y9r0NWuQAAAABJRU5ErkJggg==" alt="" />

3. 时间戳转化为字符串

 # 时间戳转化为字符串

 import time
import datetime # str转为datetime.datetime
str = "2016/8/31"
dt = datetime.datetime.strptime(str, "%Y/%m/%d") # str 转为时间戳
time_stamp = time.mktime(dt.timetuple()) # 时间戳转为字符串
str = time.strftime("%Y/%m/%d", time.localtime(time_stamp)) print str

timestamp 2 str

也许大家看了上面的介绍会觉得好像也就这样,弄不出点什么好玩的东东,那你就错了,还记得前面说的自动关机的脚本么 ?

下一篇就带大家实现这个功能!

【Time系列一】datetime的妙用的更多相关文章

  1. angular2系列教程(十)两种启动方法、两个路由服务、引用类型和单例模式的妙用

    今天我们要讲的是ng2的路由系统. 例子

  2. 《Entity Framework 6 Recipes》中文翻译系列 (17) -----第三章 查询之分页、过滤和使用DateTime中的日期部分分组

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-12 分页和过滤 问题 你想使用分页和过滤来创建查询. 解决方案 假设你有如图3 ...

  3. Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解

    Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全   Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...

  4. 重学c#系列——datetime 和 datetimeoffset[二十一]

    前言 简单介绍一下datetime和 datetimeoffset. 正文 了解一个国家的文化,就要了解一个国家的历史. 要了解datetimeoffset,那么很有必要了解一下datetime. 表 ...

  5. SharePoint API测试系列——对Recorded Item做OM操作(委托的妙用)

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 对Recorded Item动态调用OM Methods进行测试,界面如下: 输入Site的URL ...

  6. Linq无聊练习系列8---开放式并发事务,null和 DateTime,string操作练习

    /*********************开放式并发事务,null和 DateTime,string操作练习**********************************/ //所谓并发,就是 ...

  7. 在转换为 UTC 时大于 DateTime.MaxValue 或小于 DateTime.MinValue 的 DateTime 值无法系列化为 JSON

    看到这个错往往会感到莫名其妙! 其原因其实是数据库的DateTime最小值和C#的DateTime不一样 Sql Server DateTime 类型必须介于 1/1/1753 12:00:00 AM ...

  8. 踩坑系列《五》 Incorrect datetime value: 时间添加失败原因

    在进行单元测试中通过 new Date() 方式添加时间时,报了 Data truncation: Incorrect datetime value:这样的错误(我数据库表的时间类型是 datetim ...

  9. vector之妙用系列

    vector用法: 总结了下大家写的,感觉用着很方便: vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是 ...

随机推荐

  1. Make Things Move -- Javascript html5版(三)三角函数形式的动画

    角度制和弧度制 生活中通常是用角度度来理解的,代码里都是用弧度制来计算. 角度转弧度:DEG_TO_RAD = Math.PI / 180 弧度装角度:RAD_TO_DEG = 180 / Math. ...

  2. iOS 监听声音按键

    有时在项目中需要监听用户是否按下了物理声音键,然后来做某些操作,如:你自定义了一个照相功能,希望用户按下声音按键时也能进行拍照,苹果自带的照相机就有这种功能. 监听物理声音键是否按下的方法有很多中,我 ...

  3. Oracle修改字段类型和长度

    Oracle修改字段名 alter table 表名 rename column 旧字段名 to 新字段名 Oracle修改字段类型和长度 alter table 表名 modify 字段名 数据类型 ...

  4. Web开发框架对比

    Web开发框架能极大地提升开发效率,下面对一些常用的框作一些更深层次的对比. JSF JSF不是极好的快速开发原型,代码生成不是内置功能,并且原型开发应用需要开发完整应用程序那么多的配置.这真的不是J ...

  5. Matlab下多径衰落信道的仿真

    衰落信道参数包括多径扩展和多普勒扩展.时不变的多径扩展相当于一个延时抽头滤波器,而多普勒扩展要注意多普勒功率谱密度,通常使用Jakes功率谱.高斯.均匀功率谱. 多径衰落信道由单径信道叠加而成,而单径 ...

  6. uploadify的使用

    uploadify的使用 课程设计需要实现上传文件模块,本来ASP.NET是有内置的控件,但是ASP.NET MVC没有,所以就有两种方法:自定义和采用第三方插件.由于时间的关系,故采用第三方插件:u ...

  7. 用T4消除代码重复,对了,也错了

    用T4消除代码重复,对了,也错了 背景 我需要为int.long.float等这些数值类型写一些扩展方法,但是我发现他们不是一个继承体系,我的第一个思维就是需要为每个类型重复写一遍扩展方法,这让我觉得 ...

  8. WCF 学习笔记之异常处理

    WCF 学习笔记之异常处理 1:WCF异常在配置文件 <configuration> <system.serviceModel> <behaviors> <s ...

  9. LINUX安装SVN+添加自动同步+远程下载最新代码

    LINUX安装SVN+添加自动同步+远程下载最新代码---------------------1. 新建一个用户:svnroot ,以下操作非特别说明皆为root用户操作--------------- ...

  10. Linq 更改主键值

    有一个班级表,主键是class_id,在管理班级时要进行逻辑删除,而只是单纯的is_del字段(记录每条数据是否有效)更改为true,主键class_id如果不变动,在再次增加一个班级时,其主键如果和 ...