Python字符串和日期时间格式转换

Python字符串和日期时间格式转换

    • 前言:
    • 1.字符串和日期时间转换
      • 终论:给定月份的上月月份(YYYYMM)
      • 1.1格式YYYYMM变成YYYYMMDD
      • 1.2字符串转换为时间格式
      • 1.3时间格式加减
      • 1.4时间格式转换为字符串
    • 2.Pandas的DataFrame时间格式转换

前言:

  • 字符串转日期:datetime.datetime.strptime(date_string, format),两个参数必要参数

示例1:datetime.datetime.strptime('20230120', '%Y%m%d') 返回 2023-01-20 00:00:00

  • 日期转字符串:Timestamp.strftime("%Y-%m-%d"),Timestamp是原数据格式

示例2:datetime.datetime.now().strftime("%Y-%m-%d") 返回 2024-02-05

示例3:datetime.datetime.today().strftime("%Y-%m-%d") 返回 2024-02-05

  • pandas的DataFrame时间列转字符串:pd.Series.dt.strftime('%Y%m%d'),pd.Series是具体的列

  • pandas的DataFrame字符串列转日期:[datetime.datetime.strptime(i, '%Y%m%d') for i in pd.Series],pd.Series是具体的列

1.字符串和日期时间转换

终论:给定月份的上月月份(YYYYMM)

要求根据输入数据的月份,返回格式为YYYYMM的上月月份,后续内容都是这个内容的逐步实现

import datetimev_part = '202302'date_result = (datetime.datetime.strptime(v_part + '01', '%Y%m%d') + datetime.timedelta(days=-1)).strftime("%Y%m")print(type(date_result))
print(date_result)

返回结果

<class 'str'>
202301

1.1格式YYYYMM变成YYYYMMDD

这是字符串和字符串直接的转换

import datetimev_part = '202311'# 格式YYYYMM变成YYYYMMDD
v_date = v_part + '01'print(type(v_date))
print(v_date)

返回结果

<class 'str'>
20231101

1.2字符串转换为时间格式

字符串转换为时间格式,使用 datetime.datetime.strptime(date_string, format),两个参数:字符串和日期格式

import datetimev_part = '202311'# 格式YYYYMM变成YYYYMMDD
v_date = v_part + '01'# 字符串转换为时间格式
date_yyyymmdd = datetime.datetime.strptime(v_date, '%Y%m%d')print(type(date_yyyymmdd))
print(date_yyyymmdd)

返回结果

<class 'datetime.datetime'>
2023-11-01 00:00:00

1.3时间格式加减

时间格式加减,通过 datetime.timedelta(days=nums),具体增减时间定为nums值即可,增加一天写1,减去一天写-1,由源码 __slots__ = '_days', '_seconds', '_microseconds', '_hashcode' 可知这里支持的时间类型

import datetimev_part = '202302'# 格式YYYYMM变成YYYYMMDD
v_date = v_part + '01'# 字符串转换为时间格式
date_yyyymmdd = datetime.datetime.strptime(v_date, '%Y%m%d')# 时间格式加减
date_yesterday = datetime.datetime.strptime(v_date, '%Y%m%d') + datetime.timedelta(days=-1)print(type(date_yesterday))
print(date_yesterday)

1.4时间格式转换为字符串

时间转换为字符串用 strftime(format) 格式

import datetimev_part = '202302'# 格式YYYYMM变成YYYYMMDD
v_date = v_part + '01'# 字符串转换为时间格式
date_yyyymmdd = datetime.datetime.strptime(v_date, '%Y%m%d')# 时间格式加减
date_yesterday = datetime.datetime.strptime(v_date, '%Y%m%d') + datetime.timedelta(days=-1)# 时间格式转换为字符串
date_result = date_yesterday.strftime("%Y-%m-%d")print(type(date_result))
print(date_result)

返回结果

<class 'str'>
2023-01-31

2.Pandas的DataFrame时间格式转换

时间格式的列可以转换为string、int,同样string、int类型可以转换为时间格式

import datetime
import pandas as pd# 构建一个带时间格式的 DataFrame
result = pd.DataFrame([[1, datetime.datetime.now()],[2, datetime.datetime.today() + datetime.timedelta(days=-1)],[3, datetime.datetime.today() + datetime.timedelta(days=1)],[4, datetime.datetime.today() + datetime.timedelta(days=-381)]],columns=['编号', '日期时间'])# 根据时间格式的列,生成一个 int 类型 YYYYMMDD 格式的列
result['日期'] = result['日期时间'].dt.strftime('%Y%m%d').astype(int)# 根据 int 类型 YYYYMMDD 格式的列,生成一个 日期格式 的列。列表生成式或lambda表达式都行
result['日期格式'] = [datetime.datetime.strptime(i, '%Y%m%d') for i in result['日期'].astype(str)]
print(result)
print(result.dtypes)

返回结果
在这里插入图片描述


声明:本文所载信息不保证准确性和完整性。文中所述内容和意见仅供参考,不构成实际商业建议,可收藏可转发但请勿转载,如有雷同纯属巧合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/453800.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vulhub中Apache APISIX Dashboard API权限绕过导致RCE(CVE-2021-45232)

Apache APISIX是一个动态、实时、高性能API网关&#xff0c;而Apache APISIX Dashboard是一个配套的前端面板。 Apache APISIX Dashboard 2.10.1版本前存在两个API/apisix/admin/migrate/export和/apisix/admin/migrate/import&#xff0c;他们没有经过droplet框架的权限验证&…

精细管理药厂设备,制药机械设备管理平台系统助力生产提效

制药行业的复杂性要求对药品的品质和安全性进行严格控制&#xff0c;而这离不开高效管理各类机械设备。然而&#xff0c;随着制药企业规模的不断扩大和技术的迅猛进步&#xff0c;如何有效管理这些设备成为一个亟待解决的问题。在这一挑战面前&#xff0c;PreMaint制药机械设备…

【C++基础入门】六、函数(定义、调用、声明、值传递、有参无参有反无反、分文件编写)

六、函数 6.1 概述 作用&#xff1a; 将一段经常使用的代码封装起来&#xff0c;减少重复代码 一个较大的程序&#xff0c;一般分为若干个程序块&#xff0c;每个模块实现特定的功能。 6.2 函数的定义 函数的定义一般主要有5个步骤&#xff1a; 1、返回值类型 2、函数名…

C++一维数组

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 铁汁们大家好呀&#xff0c;我是PingdiGuo_guo&#xff0c;今天我们来学习一下数组&#xff08;一维&#xff09;。 文章目录 1.数组的概念与思想 2.为什么要使用数组 3.数组的特性 4.数组的操作 1.定义…

普渡机器人CEO预测2024年服务机器人市场将扩大

原创 | 文 BFT机器人 根据普渡科技有限公司的报告&#xff0c;商用服务机器人在东亚地区的应用比其他地方更为广泛。然而&#xff0c;预计到2024年&#xff0c;全球其他地区也将迎头赶上。这家总部位于中国深圳的公司自豪地宣称&#xff0c;它已经成为中国最大的此类机器人出口…

Docker 可视化工具

1、Portainer 概念介绍 Portainer是一款轻量级的应用&#xff0c;它提供了图形化界面&#xff0c;用于方便地管理Docker环境&#xff0c;包括单机环境和集群环境。 Portainer分为开源社区版&#xff08;CE版&#xff09;和商用版&#xff08;BE版/EE版&#xff09;。 Porta…

【方法】如何把PPT的“只读方式”变成可直接编辑?

PPT文件如果设置了以“只读方式”打开&#xff0c;就会无法编辑&#xff0c;那如何才能变成可直接编辑呢&#xff1f;下面我们分两种情况来具体说说&#xff0c;不清楚的小伙伴一起来看看吧。 情况一&#xff1a; PPT设置的是无密码的“只读方式”&#xff0c;这种方式下&…

One time pad 图像加密MATLAB程序

使用一次加密的形式对图像进行加密。 采用异或的方式实现。 加密、解密结果如下: 程序代码如下: % 读取原始图像并显示 originalImage = imread(lena256.bmp); % 更换为你的图像文件名 subplot(1,3,1),imshow(originalImage); title(Original Image);% 生成与图像相同大…

【Leetcode】1696. 跳跃游戏 VI

文章目录 题目思路代码结果 题目 题目链接 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 一开始你在下标 0 处。每一步&#xff0c;你最多可以往前跳 k 步&#xff0c;但你不能跳出数组的边界。也就是说&#xff0c;你可以从下标 i 跳到 [i 1&#xff0c; min(n -…

小型内衣洗衣机什么牌子好?家用小型洗衣机推荐

内衣裤作为我们日常必备的贴身衣物&#xff0c;所以对卫生方面的要求也比较高&#xff0c;但对许多人们而言&#xff0c;对内衣裤进行清洗是一项相当繁琐的事情&#xff0c;主要是因为并不能直接把内衣裤放入大型洗衣机里和其它衣服混合洗&#xff0c;所以大多数用户都会自己动…

uniapp vue3怎么调用uni-popup组件的this.$refs.message.open() ?

vue2代码 <!-- 提示信息弹窗 --><uni-popup ref"message" type"message"><uni-popup-message :type"msgType" :message"messageText" :duration"2000"></uni-popup-message></uni-popup>typ…

canvas图片上设置镂空文字效果

查看专栏目录 canvas实例应用100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…