热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在python中将datetime转换为整数

如何解决《如何在python中将datetime转换为整数》经验,为你挑选了1个好方法。

如何在python中将YYYY-MM-DD hh:mm:ss格式转换为整数?例如2014-02-12 20:51:14 - >到整数.

我知道如何只转换hh:mm:ss而不是yyyy-mm-dd hh:mm:ss

def time_to_num(time_str):
    hh, mm , ss = map(int, time_str.split(':'))
    return ss + 60*(mm + 60*hh)

ely.. 14

这取决于整数应该编码的内容.您可以将日期转换为之前某个时间的毫秒数.人们经常在1970年1月1日上午12点或1900年等时将其固定,并且从该点开始测量时间为整数毫秒.datetime模块(或其他类似的模块)将具有为您执行此操作的功能; 只是谷歌转换为毫秒.

如果要对年,月和日进行语义编码,一种方法是将这些组件乘以足够大的数量级值,以便将它们并置在整数位数内:

2012-06-13 - > 20120613 = 10,000*(2012)+ 100*(6)+ 1*(13)

def to_integer(dt_time):
    return 10000*dt_time.year + 100*dt_time.month + dt_time.day

例如

In [1]: import datetime

In [2]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:def to_integer(dt_time):
:    return 10000*dt_time.year + 100*dt_time.month + dt_time.day
:    # Or take the appropriate chars from a string date representation.
:--

In [3]: to_integer(datetime.date(2012, 6, 13))
Out[3]: 20120613

如果您还需要分钟和秒钟,则只需根据需要包含更多数量级以显示数字.

我在遗留系统中经常遇到第二种方法,尤其是从遗留SQL数据库中提取基于日期的数据的系统.

非常糟糕.您最终编写了大量hacky代码来对齐日期,计算月份或日期偏移,因为它们将以整数格式显示(例如,当您通过12月时将月份重置为1,然后递增年份值),以及锅炉板全部转换为整数格式.

除非这样的约定存在于您正在进行的API的深层次,低级且经过全面测试的部分中,否则每个使用数据的人都可以依赖此整数表示及其所有辅助函数,那么您最终会有很多人在整个地方重写基本的日期处理程序.

将值保留在日期上下文中通常要好得多,例如datetime.date,尽可能长,以便对它的操作以自然的,基于日期的上下文表示,而不是某个单独的开发人员个人入侵整数.



1> ely..:

这取决于整数应该编码的内容.您可以将日期转换为之前某个时间的毫秒数.人们经常在1970年1月1日上午12点或1900年等时将其固定,并且从该点开始测量时间为整数毫秒.datetime模块(或其他类似的模块)将具有为您执行此操作的功能; 只是谷歌转换为毫秒.

如果要对年,月和日进行语义编码,一种方法是将这些组件乘以足够大的数量级值,以便将它们并置在整数位数内:

2012-06-13 - > 20120613 = 10,000*(2012)+ 100*(6)+ 1*(13)

def to_integer(dt_time):
    return 10000*dt_time.year + 100*dt_time.month + dt_time.day

例如

In [1]: import datetime

In [2]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:def to_integer(dt_time):
:    return 10000*dt_time.year + 100*dt_time.month + dt_time.day
:    # Or take the appropriate chars from a string date representation.
:--

In [3]: to_integer(datetime.date(2012, 6, 13))
Out[3]: 20120613

如果您还需要分钟和秒钟,则只需根据需要包含更多数量级以显示数字.

我在遗留系统中经常遇到第二种方法,尤其是从遗留SQL数据库中提取基于日期的数据的系统.

非常糟糕.您最终编写了大量hacky代码来对齐日期,计算月份或日期偏移,因为它们将以整数格式显示(例如,当您通过12月时将月份重置为1,然后递增年份值),以及锅炉板全部转换为整数格式.

除非这样的约定存在于您正在进行的API的深层次,低级且经过全面测试的部分中,否则每个使用数据的人都可以依赖此整数表示及其所有辅助函数,那么您最终会有很多人在整个地方重写基本的日期处理程序.

将值保留在日期上下文中通常要好得多,例如datetime.date,尽可能长,以便对它的操作以自然的,基于日期的上下文表示,而不是某个单独的开发人员个人入侵整数.


推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
author-avatar
必须滴958_534
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有