在介绍本文主题之前,我们思考片刻,是否有很多代码我们已经重新写了不止一次,不经常使用的函数可能还需要多次查询。

Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python编程。之所以要提及面向对象的概念,是因为我们可以对常用的代码进行封装,避免重复开发。

今天就来给大家分享一下常用的时间转换函数,按照如下三个步骤介绍:

  • 处理时间的库
  • 时间类型对象
  • 时间类型转换方法

处理时间的库

Python标准库中有两个处理时间的库。其中一个名为datetime,另一个是time。在Python官网文档中,datetime 是被定义为数据类型(Data Types)。由此可见,datetime 是主要提供处理日期和时间的数据类型的模块。它其中有几个常用的类型,例如:datetime.datetime、datetime.time、datetime.date等,其中最主要的类是datetime.datetime。因为它携带了 datetime.time 和 datetime.date 这两个所带的信息,能够比较齐全地输出,即能一次性就输出年、月、日、时、分、秒等日期和时间信息。

time模块是归属于通用操作系统服务(Generic Operating System Services)类目中。time模块主要提供各种时间转换的函数。它服务于系统层次,Python 又是跨平台的,所以有些 API 只能在某些操作系统上使用。

时间类型对象

在Python中,涉及时间对象有4种:datetime、timestamp、time tuple、string。

1.datetime

datetime对象属于datetime 模块。它的构造方式是 datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)。我们了解下它的构造方法即可,一般很少直接使用它的构造方法。我们一般使用它的 now() 函数来获取本地当前日期和时间。

2.string

在某些场景,我们可能需要使用到字符串类型的时间。我们在now()函数的基础上再调用 strftime()函数即可。strftime() 返回的是一个表示日期和时间的字符串。最后显示结果由指定样式的参数决定。

3.timestamp

timestamp指的是Unix时间戳。它是格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒(北京时间 1970 年01月01日08 时00 分00 秒)起至现在的总秒数。我们使用time对象中的 time()函数能获取到时间戳 。

4.time tuple

time tuple 表示时间元组。time tuple 是 time.struct_time 对象类型。获取本地当前时间,一般是使用 time 中的 localtime() 函数。localtime() 返回的是将时间戳经过格式化的本地时间。

时间类型转换方法

给大家介绍的方法,是我已封装好的类函数dateprocess,它包含了常用的各种时间转换方法,在工作中可以直接调用即可,无需重复开发,使用起来简单方便,有兴趣可以收藏。

import time
import datetime
class dateprocess:# datetime 转 stringdef datetime2str(self,input_datetime):input_str = input_datetime.strftime('%Y-%m-%d %H:%M:%S')return input_str # string 转 datetimedef str2datetime(self,input_str):input_dt = datetime.datetime.strptime(input_str,'%Y-%m-%d %H:%M:%S')return input_dt# string 转 timestampdef str2timestamp(self,input_str):timeArray  = time.strptime(input_str, "%Y-%m-%d %H:%M:%S")timestamp = int(time.mktime(timeArray))return timestamp# timestamp 转 stringdef timestamp2str(self,input_str):input_dt = datetime.datetime.fromtimestamp(input_str)return input_dt# datetime 转 time_tupledef datetime2time_tuple(self,dt):input_dt = dt.timetuple()return input_dt# str 转 time_tupledef str2time_tuple(self,data_str):input_str = time.strptime(data_str,'%Y-%m-%d %H:%M:%S')return input_str # timestap 转 time_tupledef timestamp2time_tuple(self,data_timestamp):input_str = time.localtime(data_timestamp)return input_str # time_tuple 转 timestampdef time_tuple2timestamp(self,time_tuple):input_str = int(time.mktime(time_tuple))return input_str # 比如昨天同一时刻def days_difference(self,n):now_dt = datetime.datetime.now() - datetime.timedelta(days=n)return now_dt# 比如一个小时之前def hours_difference(self,n):now_dt = datetime.datetime.now() - datetime.timedelta(hours=n)return now_dtdata = dateprocess()
now = datetime.datetime.now()
data_str = data.datetime2str(now)
print('-----------data_str--------------')
print(data_str)

技术交流

欢迎转载、收藏本文,码字不易,有所收获点赞支持一下!

为方便进行学习交流,本号开通了技术交流群,添加方式如下:

直接添加小助手微信号:pythoner666,备注:CSDN+python,或者按照如下方式添加均可!

时间类型变换问题,这一篇就够了!相关推荐

  1. 修改CentOS7系统时间EDT为CST【一篇就够】

    EDT:指美国东部夏令时间,波士顿.纽约市.华盛顿哥伦比亚特区,都在这个时区内,跟北京时间有12小时的时差,晚12小时. CST:可以指下面两种: 1. 美国中部标准时间(西六区,-6:00),中国是 ...

  2. 旋转矩阵及左右乘的意义,看这一篇就够了

    旋转矩阵及左右乘的意义,别浪费时间了,看这一篇就够了 前言 这些天研究旋转矩阵,被教科书和视频课绕迷糊了,可悲的是 ,如此简单的概念竟然没有一篇文章 (至少我没搜到)能够直观解释清楚,一气之下,我决定 ...

  3. MySQL 学习笔记(12)— 数据类型(定长字符、变长字符、字符串大对象、数字类型、日期时间类型、二进制类型)

    MySQL 常见的数据类型有字符串类型.数字类型.时间类型.二进制类型.具体的分类如下图: 1. 字符串类型 字符串类型用于存储字符和字符串数据,主要包含三种具体的类型:定长字符串.变长字符串以及字符 ...

  4. mysql 日期_「5」学习MySQL日期与时间类型发现:要养成注重细节的习惯

    在前面的学习中我们提到过字段类型这个概念,本篇的主题就是来讲一种常用而相对复杂的类型:日期与时间. MySQL中表示日期与时间的数据类型有很多种,但主要的不外乎下面五种: 记住上面表中的"范 ...

  5. mysql查询时间类型c语言处理_资讯类app用户热度及资讯类型分析-Mysql进行数据预处理...

    本文是"资讯类app用户热度及资讯类型分析"一文中,Mysql进行数据预处理的部分.因为篇幅可能比较长,而且摘出来不会过于影响原文分析思路,所以这里单独进行介绍.(本文前四部分与正 ...

  6. mongodb 时间戳 java_Java将日期类型Date时间戳转换为MongoDB的时间类型数据

    存了一个时间类型(Date)的数据到mongo数据库中,但是前台显示的是一串数字.继而引发了如下问题: Java里面如何把 时间戳 1477387464495 转换为 2016-10-25 17:24 ...

  7. 第二节:比较DateTime和DateTimeOffset两种时间类型并介绍Quartz.Net中用到的几类时间形式(定点、四舍五入、倍数、递增)

    一. 时间的类型 1. 背景 这里为什么要介绍时间类型呢,明明是定时调度篇,原因是在定时任务中,任务什么时间开始执行,什么时间结束执行,要用到各种各样的时间模式,虽然这不能算是一个复杂的问题,但在正式 ...

  8. easyexcel 日期类型 convert_数据库的几种日期时间类型,你真的会用吗?

    日期和时间是每个系统,每个数据库设计必不可少的部分.也是容易被大家忽视的部分.很多开发者可能根本不了解以不同类型存储日期和时间意味着什么. 有朋友可能会说,数据库定义一个datetime或timest ...

  9. linux时间类型localtime_r

    linux时间类型localtime_r,struct tm *p gettimeofday(&now ,NULL):取得当前时间的参数值,now可以是struct timespec 或者 s ...

最新文章

  1. python安装在什么系统下最好-python开发环境哪个好用?如何搭建?
  2. dedecms 栏目列表页链接如何优化
  3. micropython驱动lcd_k210 编译micropython LCD驱动失败
  4. Qt Creator编码
  5. 算法导论学习笔记 6.5 优先队列
  6. centos6下如何安装mysql服务_CentOS6下安装MySQL数据库服务
  7. tensorflow之第一个项目MNIST数据集
  8. 格雷码(Gray Code)编码、实现及规律(附编码)
  9. 波动率模型以及波动率的程式化特征实证
  10. 新浪微博共享登录后无法退出切换账号问题解决
  11. 30天自制操作系统第1天 - Hello World
  12. Win32 IME 编程心得【转】
  13. 电脑为何连不上手机开的热点
  14. 油溶性InP/ZnS高亮绿光和红光PL490nm-750nm
  15. 人人都在用的机器学习算法-决策树
  16. 谈谈三次握手四次挥手
  17. 战略决定结构是什么意思?
  18. ShardingSphere 学习
  19. 杭州劳动仲裁流程(江干,拱墅)一把心酸泪
  20. CDH/YRAN_集群调优

热门文章

  1. 程序员:上班第一天就让改bug!网友:攒一堆了,就等你了!
  2. 14 机器学习 - CF协同过滤推荐算法原理
  3. Spring IoC 原理及实现
  4. javascript写字技巧_JavaScript 如何书写更优雅
  5. Hive的基本操作之表分区
  6. 求职面试的时候如何谈薪酬待遇
  7. 3、了解PS图形构成方式
  8. TCP加速技术解决方案
  9. Web前端学习笔记(八)~水滴动画
  10. 【go共识算法】-Raft