Python之字符串转换为日期、结合时区的日期操作

一、字符串转换为日期 方法一
s = ‘2019-01-20‘
print(datetime.strptime(s, ‘%Y-%m-%d‘))  # 2019-01-20 00:00:00
方法二
def parse_ymd(s):
    year_s, mon_s, day_s = s.split(‘-‘)
    return datetime(int(year_s), int(mon_s), int(day_s))
s = ‘2019-01-20‘
res = parse_ymd(s)
print(res)  # 2019-01-20 00:00:00

二、结合时区的日期操作

对几乎所有涉及到时区的问题,你都应该使用 pytz 模块,这个包提供了Olson时区数据库, 它是时区信息的事实上的标准,在很多语言和操作系统里面都可以找到
 pytz 模块一个主要用途是将 datetime 库创建的简单日期对象本地化,一旦日期被本地化了, 它就可以转换为其他时区的时间了
需求:你有一个安排在2012年12月21日早上9:30的电话会议,地点在芝加哥。 而你的朋友在印度的班加罗尔,那么他应该在当地时间几点参加这个会议呢?
from pytz import timezone
import pytz
d = datetime(2012, 12, 21, 9, 30, 0)
central = timezone(‘US/Central‘)   # 时间本土化
loc_d = central.localize(d)  # 转换为芝加哥时间对象

# 通用方法一:
#  处理本地化日期的通常的策略先将所有日期转换为UTC时间, 并用它来执行所有的中间存储和操作
utc_d=loc_d.astimezone(pytz.utc)
# 一旦转换为UTC,你就不用去担心跟夏令时相关的问题了(美国标准夏令时时间开始于本地时间3月13日凌晨2:00(在那时,时间向前跳过一小时),本地化日期上执行计算时候会出现错误)
bang_d1=utc_d.astimezone(timezone("Asia/Kolkata"))

# 方法二,直接转为班加罗尔时间
bang_d2 = loc_d.astimezone(timezone(‘Asia/Kolkata‘))  # 转换未班加罗尔时间
print(bang_d1,bang_d2)    # 2012-12-21 21:00:00+05:30 2012-12-21 21:00:00+05:30

# 补充可以使用ISO 3166国家代码作为关键字去查阅字典 pytz.country_timezones 查找对应的时区名
print(pytz.country_timezones["IN"])   # [‘Asia/Kolkata‘]


原文地址:https://www.cnblogs.com/zzy-9318/p/10478524.html

时间: 2024-11-05 12:07:49

Python之字符串转换为日期、结合时区的日期操作的相关文章

【Python】+字符串转换为日期(互转)

https://www.cnblogs.com/baxianhua/p/9934878.html import datetime class TestDate: def test_date(self): y, m, d = self.split("-") print("{}年{}月{}日".format(y, m, d)) date = datetime.date(int(y), int(m), int(d)) print(date) date = date + d

python中字符串的操作方法

python中字符串的操作方法大全 更新时间:2018年06月03日 10:08:51 作者:骏马金龙 我要评论这篇文章主要给大家介绍了关于python中字符串操作方法的相关资料,文中通过示例代码详细介绍了关于python中字符串的大小写转换.isXXX判断.填充.子串搜索.替换.分割.join以及修剪:strip.lstrip和rstrip的相关内容,需要的朋友可以参考下 前言 python中字符串对象提供了很多方法来操作字符串,功能相当丰富.?123 print(dir(str)) [...

mysql str_to_date字符串转换为日期

mysql内置函数,在mysql里面利用str_to_date()把字符串转换为日期. 示例:分隔符一致,年月日要一致 select str_to_date('2008-4-2 15:3:28','%Y-%m-%d %H:%i:%s'); select str_to_date('2008-08-09 08:9:30', '%Y-%m-%d %h:%i:%s'); 对于这个已经理解,但是为何查询字段时使用这种方法查询出来的数据为null???? 刚发现的问题,尝试在client上查询,发现可以出现

将字符串转换为日期比较大小

//将字符串转换为日期            var begin = new Date($("#<%=txtNow.ClientID %>").val().replace(/-/g, "/"));            var end = new Date($("#<%=txtENDTIME.ClientID %>").val().replace(/-/g, "/"));            //js

使用SimpleDateFormat注意的地方和在jsp中将字符串转换为日期

一.使用SimpleDateFormat注意的地方 SimpleDateFormat将字符串转换为日期类型时,转换的格式必须和字符串的格式一样,否则就会报错,比如:将字符串"20150825195057"转化为日期类型,转换格式必须是 "yyyyMMddHHmmss",如果是其他格式,将会报   java.text.ParseException: Unparseable date: "20150825195057"异常.那如果要将字符串转换成yy

将某个日期字符串转换为java.sql.Date的类型

import java.text.ParseException; import java.text.SimpleDateFormat; public class date { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { String endDate=" 2014-09-10  "; System.out.print

js中字符串转换为日期和比较大小

本文转载于:http://yun342173024.iteye.com/blog/1873756在做前端校验的时候,要做日期比较的校验,在js中把字符串转化为日期,一时之间还真不知道在js中怎么把一个字符串格式的日期转化为Date,查看了一些资料,在此分享下. 下面以调用js中Date(year,month,day)来生成一个日期对象.  1.把字符串格式转换为日期的函数,函数接受两个参数,dateStr字符串日期格式,  separator日期格式分隔符,默认是-.,这里没有对字符串的日期格式

日期字符串转换为NSDate

1 // 纯数字日期 2 NSString *str1 = @"20150611132535"; 3 // 日期字符串 4 NSString *str2 = @"2015/05/12 10:22:01"; 5 // 带时区的日期字符串 6 NSString *str3 = @"Tue Sep 06 21:37:19 +0800 2015"; 7 // 不带时区的日期字符串 8 NSString *str4 = @"Tue Sep 05

python中将指定的字符串转换为大写字母并每隔2个字符用空格分割后得到一个新字符串的方法

在例子中对指定的字符串: faa5fbb5fcc5fdd5010200000028000001900000000a002d00000000017d7840000003e800005fa55fb55fc55fd5 使用了三种方法将其转换为大写字母并每隔2个字符用空格分割处理后得到一个新字符串,为: FA A5 FB B5 FC C5 FD D5 01 02 00 00 00 28 00 00 01 90 00 00 00 0A 00 2D 00 00 00 00 01 7D 78 40 00 00