Google Sheets中如何将带单引号的文本格式时间[2021-10-08 23:49:37]转换为UTC-6时区并格式化为[10-十月-2021, 05:49:37 下午]
嘿,刚好之前处理过类似的Google Sheets时间转换需求,给你两套直接能用的方案,根据你的 Sheets 语言环境选就行:
方案一:适用于中文界面的 Sheets
如果你的Google Sheets已经设置为中文语言,用这个简洁的公式就搞定了(假设原始时间在A1单元格):
=TEXT(SUBSTITUTE(A1,"'","") - TIME(6,0,0), "dd-mmmm-yyyy, hh:mm:ss AM/PM")
公式拆解:
SUBSTITUTE(A1,"'",""):先去掉单元格里的前置单引号,把带引号的文本转成纯时间字符串- TIME(6,0,0):把原始UTC时间减去6小时,转换为UTC-6时区的时间(如果你的原始时间不是UTC,记得调整这个时间差)TEXT(...):把转换后的时间值格式化成你要的样式——dd是两位数日期,mmmm会自动输出中文全称月份(比如「十月」),hh:mm:ss是12小时制时分秒,AM/PM会自动显示「上午」/「下午」
方案二:通用版(不受语言设置影响)
如果你的 Sheets 不是中文界面,或者担心月份显示异常,用这个带手动指定中文月份的公式:
=LET( original_time, SUBSTITUTE(A1,"'",""), utc6_time, original_time - TIME(6,0,0), day_part, TEXT(utc6_time, "dd"), month_part, SWITCH(MONTH(utc6_time),1,"一月",2,"二月",3,"三月",4,"四月",5,"五月",6,"六月",7,"七月",8,"八月",9,"九月",10,"十月",11,"十一月",12,"十二月"), year_part, TEXT(utc6_time, "yyyy"), time_part, TEXT(utc6_time, "hh:mm:ss AM/PM"), day_part & "-" & month_part & "-" & year_part & ", " & time_part )
额外说明:
- 不管哪种方案,都能自动处理跨天的情况(比如原始时间是凌晨1点,减6小时后会自动变成前一天的19点)
- 原始单元格的单引号是Google Sheets的文本前缀标记,
SUBSTITUTE函数能完美去除它,不需要手动双击单元格修改
内容的提问来源于stack exchange,提问作者Qyu
相关产品推荐
相关产品推荐

