
影刀RPA新手教程日期时间处理实战——昨天、上周与月末的计算做日报、周报、月报的自动化绕不开日期计算报表文件名要带昨天的日期采集范围要取上周一到周日月度对账要拿到上个月的最后一天。新手在这一步最常见的死法是拿字符串硬算——把2026-09-27拆开加减数字月底和闰年一碰就全线翻车。这篇影刀RPA新手教程就把日期时间处理这一件事讲透。不需要懂编程影刀RPA把日期计算做成了现成指令你要做的只是搞清楚每个指令管什么、什么时候用哪个。我自己非技术出身电商日报系统从手工搬到影刀RPA上跑了一年多中间踩的坑都会写在里面。认识日期时间的三个指令取当前、做加减、转文本先认识最常用的三个指令90%的日期需求靠它们解决。指令都在右侧指令面板搜名字就有拖到画布上配置即可【获取当前日期时间】把当前系统时间存成一个日期时间变量这是一切计算的起点【增加/减少时间】在指定日期上加减一段时间长度时间单位支持秒、分钟、小时、天、月、年输出可以是日期时间对象也可以勾选输出日期时间的文本直接给文本【日期时间转换为文本】把日期时间对象按指定格式转成字符串时间格式下拉框里选也支持自定义格式三个指令串起来的标准三步取当前时间→加减出目标日期→转成你要的格式。下面用三个真实需求演示。昨天的日期日报文件名的标准写法需求每天早上自动生成昨天的日报文件名叫日报_2026-09-26.xlsx。配置流程拖入【获取当前日期时间】保存当前日期时间至变量now_time拖入【增加/减少时间】原日期时间填now_time调整方式选减少时间长度填1时间单位选天拖入【日期时间转换为文本】时间格式选YYYY-MM-DD保存文本至变量yesterday_str文件名拼接在【打开/新建Excel】或写入文本文件的路径参数里填日报_“yesterday_str”.xlsx对应Python节点里的等价写法方便你看懂逻辑importdatetime# 输入无取系统时间输出yesterday_str 形如 2026-09-26 的文本now_timedatetime.datetime.now()# 当前日期时间对象yesterdaynow_time-datetime.timedelta(days1)# 减1天自动处理跨月跨年yesterday_stryesterday.strftime(%Y-%m-%d)# 转成 YYYY-MM-DD 文本file_name日报_yesterday_str.xlsx# 拼出文件名timedelta减1天跨月跨年都不会错9月1日减1天自动变成8月31日这就是用对象计算、最后才转文本的价值。你全程对日期对象做运算只在最终落地时转一次字符串。上周的计算周报范围要按周一到周日取上周比昨天麻烦一点因为要同时算出上周一和上周日两个日期。思路分两步先算出今天是本周第几天再往前推。【获取时间详细信息】指令在这里派上用场输入一个日期时间它能一次性返回年份、月份、天数、小时、分钟、秒数、星期、当月最后一天、当年第几周、当年第几天全部存进一个变量里随取随用。用它拿到今天的星期后配置思路是【获取当前日期时间】得到now_time【获取时间详细信息】输入now_time得到星期用【增加/减少时间】减去星期对应的偏移天数7天得到上周一再减偏移1天得到上周日两个日期分别【日期时间转换为文本】用作采集的时间范围参数有个细节官方文档专门标注了当年第几周的计数从0开始比如2025年1月1日是当年第0周。如果你拿周数给报表编号记得要么1要么别叫第N周叫第N1周不然和Excel的WEEKNUM对不上对账时又要扯皮。月末与上月末不用数天数指令直接给算月末是最不该手算的一件事2月28天、大月小月、闰年手算必错。【获取时间详细信息】直接返回当月最后一天这个字段输入任何日期输出就是那个月的最后一天一天都不用你算。要拿上月末标准三步先用【增加/减少时间】把当前日期减1个月再对结果执行【获取时间详细信息】取当月最后一天最后【日期时间转换为文本】。比如今天是2026-09-27减1个月得2026-08-27取当月最后一天得2026-08-31正是上月末。顺带说一个日期计算的边界报错如果流程里报day is out of range for month日期超出月范围官方排查文档指出的常见原因是给日期相关指令传了列表类型的变量或者目标日期本身不合法比如手动拼出了2月30日。检查传入变量类型和日期合法性基本都能解决。批量日期序列按天或按月生成整个列表做趋势表、连续采集时需要一串日期而不是单个日期。【获取日期时间列表】指令专门干这个输入开始时间和结束时间指定时间间隔秒、分钟、小时、天、月、年输出一个日期列表。开始时间2025-8-1、结束时间2025-12-1、间隔选月就得到每个月1号的列表。配置面板里有三个实用开关勾选输出文本可以指定输出格式不勾选则输出Python的datetime对象去掉零能把06月变成6月倒序可以让列表从晚到早排。拿到列表后用ForEach列表循环逐个处理循环体里放你的采集或写表逻辑一个按日期跑批的框架就成了。时间戳转换接口数据里的另一套时间语言平台接口返回的时间经常是时间戳比如1727400000这种十位数。【时间戳转换为日期时间】指令负责翻译时间戳级别选秒级10位、毫秒级13位或微秒级16位选错了换算出来的日期会差十万八千里小红书接口是毫秒级、部分老接口是秒级转换前先确认位数。反方向也有【日期时间转换为时间戳】指令本地算好的日期转成时间戳再拼进请求URL采集指定日期的数据时会用到。两个指令配合接口时间和你本地时间就能自由换算了。疑难排查写入Excel时间少了8个小时这是日期处理里最经典的坑我当年排查了一下午。现象用【获取当前日期时间】拿到的时间明明是对的写进Excel后所有时间都少了8个小时。按现象→排查→根因→修复→防复发走一遍现象Python的datetime类型写入Office或WPS的Excel后时间整体早了8小时排查先打印日志确认变量里的时间对不对。变量里是对的、Excel里差8小时锁定位差发生在写入环节根因Office和WPS写入时需要的是COM类型pywintypes.datetime收到Python的datetime类型时会按伦敦时间UTC写入而北京时间正好比UTC快8小时修复官方给了两条路——方法一写库前把datetime转成str文本类型再写入方法二用openpyxl方式写日期。指令化操作也可以直接在写入前用【增加/减少时间】加8小时兜底防复发流程规范里固定一条任何datetime写入Excel前先转文本团队里谁写流程都遵守这类问题就绝迹了我现在的写法统一是转文本【日期时间转换为文本】转成YYYY-MM-DD HH:mm:ss再落表Excel里显示正常筛选排序也不受影响。工程化把日期计算封装成子流程日期计算逻辑建议统一收进一个日期工具子流程输入一个偏移需求昨天、上周、上月末输出对应的文本日期。主流程需要日期时调用子流程拿结果以后改需求比如日报改算到前天只动子流程一处。子流程的输出参数在主流程里直接引用这是影刀RPA参数传递的标准用法也是流程模板化的基础。调试日期类流程有个专属技巧把计算结果用【打印日志】打出来日志面板里人眼核对一遍格式和数值再往下走。日期格式错一个字符后面文件名、采集参数全跟着错宁可多看一眼。联动与实战日期在通知和定时任务里的用法日期算好之后最常见的三个去向拼进飞书消息“昨日新增订单326单截至2026-09-26 23:59”作为查询参数传给数据库或接口只取昨天的增量数据写进运行日志和时间戳配合计划任务每天凌晨自动执行。定时任务加日期参数的组合就是一套无人值守的日报系统平台实战里小红书、拼多多的每日数据采集我都是这一套模板改的。日期时间易错速查现象/报错根因修复方法Excel里时间少8小时datetime按UTC写入Office写入前转文本或加8小时或用openpyxlday is out of range for month传了列表变量或日期不合法核对变量类型检查是否拼出2月30日时间戳转换结果离谱秒级/毫秒级选错数位数10位选秒级13位选毫秒级周数和Excel对不上影刀周数从0开始计数取出的周数加1再比对文件名日期带时分秒转文本时格式选成含时间的日期场景选YYYY-MM-DD格式学习资源与延伸阅读官方日期时间自动化专题课程和对应文档获取当前日期时间、增加/减少时间、获取时间详细信息、获取日期时间列表这几篇建议通读一遍配置项说明比我这里全Excel写入日期时间数据时少了8个小时那篇排查文档也在官方常见问题里遇到先去对一遍。我的日报系统完整源码——日期计算子流程、增量采集、飞书推送三件套——放在代码仓库 home.linyan.cloud可以直接参考改造把时间范围和表结构换成你自己的业务就行。#影刀RPA #RPA自动化 #日期时间 #定时任务 #Excel作者林焱