文本与日期格式相互转换

1. 案例简介

本案例将介绍,如何通过函数进行文本与日期之前的格式转换。

2. 将日期转换为文本格式

2.1 方法一:TEXT函数

要用到的函数:

设置公式为:

TEXT(DATE(日期时间),'yyyy-MM-dd')

表示将日期时间字段转换为 yyyy-MM-dd 格式的文本,其中 yyyy 表示年份,MM 表示月份,dd 表示日。

文本的格式可以根据需要进行自由组合,如:

TEXT(DATE(日期时间),'yyyyMMdd')

表示将日期时间字段转换为 yyyyMMdd 格式的文本:

2.2 方法二:DATE函数

要用到的函数:

  • DATE 函数:把日期时间(时间戳)转换成时间对象;
  • YEAR 函数:取出时间对象中的年份;
  • MONTH 函数:取出时间对象中的月份;
  • DAY 函数:取出时间对象中的天数;
  • TEXT 函数:将数字转换为文本格式;
  • CONCATENATE 函数:将多个文本字符串合并成一个文本字符串,把拆分提取的年、月、日和短线符号 “-” 连接起来。

设置公式为:

CONCATENATE(TEXT(YEAR(DATE(日期时间))),'-',TEXT(MONTH(DATE(日期时间))),'-',
TEXT(DAY(DATE(日期时间))))

表示分别提取日期时间字段中的年、月、日信息,将其转换为文本格式,再将这些信息用 “-” 连接起来:

此方法中虽然日期取出正确,但是这样取出的文本 2021-5-12 在月份上只有一位。如果需要统一成 XXXX-XX-XX 的格式,操作方法请参考如下:关于文本位数的补充:

2.3 关于文本位数的补充

因为要对月份日期补足位数,前面拼接一个 0,所以取出的月和日需要先转成文本,否则直接用+号连接就变成了加法。

  • RIGHT(a,b):从字符串 a 的右边取字符,取 b 个;
  • TEXT 函数:把数值转换为文本格式。

字段中的年份肯定是 4 位数,可以不用考虑。

月份和日期,可能会出现 1 位数或者 2 位数的情况,我们可以统一成 2 位数的格式,RIGHT 函数是从右边取位字符串的函数,只要在月份前面加一个 0,从右边取 2 位即可:

RIGHT('0'+TEXT(MONTH(DATE(时间日期))),2)

表示假设月份为 12,拼接一个 0 之后,012 取右边 2 位依然是 12;假设月份是 5,拼接一个 0 之后,01 取右边 2 位是 05;这样就实现了取出月份必定是 2 位数的格式。日期同理。

最终设置公式为:

CONCATENATE(TEXT(YEAR(DATE(日期时间))),'-',RIGHT('0'+TEXT(MONTH(DATE(日期时间))),2),'-',
RIGHT('0'+TEXT(DAY(DATE(日期时间))),2))

效果如下:

3. 将文本转换为日期格式

要用到的函数:

  • MID 函数:取出文本字符串中从指定位置开始的特定数目的字符;
  • VALUE 函数:把文本转换为数值格式;
  • DATE 函数:把日期时间(时间戳)转换为时间对象。

以文本 yyyyMMdd 的格式为例,设置公式为:

DATE(VALUE(MID(单行文本,1,4)),VALUE(MID(单行文本,5,2)),VALUE(MID(单行文本,7,2)))

表示分别提取出单行文本中的年、月、日信息,转换成数值格式,再转换为日期时间格式:

文档内容是否对您有帮助?
有帮助
没帮助没帮助
如需获取即时帮助,请联系技术支持
咨询
扫码领取100+零代码资料简道云官方微信号400-111-0890
图标在线咨询
立即体验