如何将「28 June 2021 10:52:16 CDT (GMT-0500)」转为DateTime及06/28/2021格式
实现方案(按常用工具分类)
以下方案默认字段名为raw_date_str,可根据实际情况替换为你自己的字段名。
1. SQL场景(以MySQL为例)
转DateTime类型
会自动处理时区偏移,最终可得到标准时间格式用于筛选:
SELECT CONVERT_TZ( -- 提取时区标注前的时间文本解析为DateTime STR_TO_DATE(SUBSTRING_INDEX(raw_date_str, ' (', 1), '%d %M %Y %H:%i:%s'), -- 提取GMT偏移量作为源时区 SUBSTRING_INDEX(SUBSTRING_INDEX(raw_date_str, 'GMT', -1), ')', 1), -- 目标时区可自定义,此处用UTC为例,也可改为你所在地区的时区偏移 '+00:00' ) AS standard_datetime FROM your_table;
转06/28/2021格式字符串
在上面转换为DateTime的基础上做格式输出即可:
SELECT DATE_FORMAT( CONVERT_TZ( STR_TO_DATE(SUBSTRING_INDEX(raw_date_str, ' (', 1), '%d %M %Y %H:%i:%s'), SUBSTRING_INDEX(SUBSTRING_INDEX(raw_date_str, 'GMT', -1), ')', 1), '+00:00' ), '%m/%d/%Y' ) AS format_date_str FROM your_table;
PostgreSQL、SQL Server等其他数据库逻辑一致,替换为对应数据库的日期解析、时区转换、格式化函数即可。
2. Python场景(pandas处理平面文件常用)
import pandas as pd # 读取平面文件 df = pd.read_csv("你的平面文件路径.csv") # 转DateTime类型,自动识别时区偏移 df["standard_datetime"] = pd.to_datetime(df["raw_date_str"]) # 转06/28/2021格式字符串 df["format_date_str"] = df["standard_datetime"].dt.strftime("%m/%d/%Y")
3. Excel/Power Query场景
导入平面文件后在Power Query编辑器中添加自定义列即可:
- 转DateTime类型:自定义列公式填
DateTime.From(DateTimeZone.From([raw_date_str])) - 转
06/28/2021格式字符串:自定义列公式填DateTime.ToText([standard_datetime], "MM/dd/yyyy")
内容的提问来源于stack exchange,提问作者kwNuke
相关产品推荐
相关产品推荐

