Excel中的5位数(可能还有小数点),代表了从1900-01-01到现在这个时区的这个时间的天数,也就是时间戳。
Excel时间戳转为unix时间戳 说明:时间戳从1970-01-01开始的 公式:((excelDays - 70 * 365 - 19) * 86400 - 8 * 3600) * 1000 参数:
excelDays = 表格中的天数
70 * 365 = 1900-01-01 到 1970-01-01的天数
19 = 中间包含的闰年多出来的天数
86400 = 一天的秒数
8 * 3600 = 时区的秒数,为什么?因为Excel的计算有可能是从格林威治的0点起算的,算到了北京时间
1000 = 毫秒数
你可以利用上面的公式反推,先拿到当前时区当前时间的时间戳,不要忘记了时区?因为Excel的计算有可能是从格林威治的0点起算的,算到了北京时间。
Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
北京时间
夏令时
1986年至1991年,中华人民共和国在全国范围实行了六年夏令时,每年从4月中旬的第一个星期日2时整(北京时间)到9月中旬第一个星期日的凌晨2时整(北京夏令时)。除1986年因是实行夏令时的第一年,从5月4日开始到9月14日结束外,其它年份均按规定的时段施行。夏令时实施期间,将时间向后调快一小时。1992年4月5日后不再实行。
我查了一下目前宜搭还没有默认公式可以直接把标准日期格式直接转成5位数的日期戳的。不过你可以试一试自己开发。
excel表中日期、时间与时间戳的转换你可以参考相关工具: https://tool.lu/timestamp/
【回答】 直接使用下面这个公式就可以:
=ROUNDUP(A1,0)/(24*60)+MID(A1,FIND(" ",A1)+1,6)
其中, - A1是要转换的日期,ROUNDUP函数用于将数字向上取整,即将日期转换为以"00"开头的数字;
MID函数用于提取日期中的月份和日期,并将其连接为5位数字;
FIND函数用于查找字符串中第一个空格的位置,并将其与6相加以获取月份的位置。
在宜搭中,可以使用以下公式将日期转换成与Excel相同的5位数字格式:
=(YEAR({输入日期})-1900)*365 (YEAR({输入日期})-1901)/4-DAY({输入日期}) (MONTH({输入日期})<3)*(2-YEAR({输入日期})%4) (MONTH({输入日期})-1)*306/10
其中,{输入日期}
为需要转换的日期,输出结果为5位数字格式。请将公式中的{输入日期}
替换为实际的日期数据字段或数值,例如:
=(YEAR({日期字段名})-1900)*365 (YEAR({日期字段名})-1901)/4-DAY({日期字段名}) (MONTH({日期字段名})<3)*(2-YEAR({日期字段名})%4) (MONTH({日期字段名})-1)*306/10
请注意,在某些特定的日期场景下,该公式可能存在一定的精度误差。
可以使用以下公式试下:
=TEXT(date, "yymmdd")
其中,date 是要进行转换的日期单元格或日期数值。该公式使用 TEXT 函数将日期格式化为指定的格式,其中 "yymmdd" 表示将日期转换为年份后两位、月份和日期两位数字的格式。
例如,假设日期值位于 A1 单元格中,您可以在另一个单元格中使用以下公式来将日期转换为5位数字的格式:
=TEXT(A1, "yymmdd")
将公式应用到相应的单元格后,该单元格将显示5位数字格式的日期值。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。