获取一个时间(如系统当前时间/从时间戳或文本内容转换),根据需求做一定的计算,然后输出结果时间。
本部分内容也可以直接在表达式中使用C#的DateTime类型实现。
参数
输入
第一部分,获取原始时间值。
【时间来源】选择原始时间的来源,可选值如下:
- 当前时间
- 从文本转换
- 从Unix时间戳转换(秒)
- 从Unix时间戳转换(毫秒)
- 时间变量
当前时间
获取系统当前时间。
选中“使用UTC时间”时,返回当前UTC时间,否则返回本地时间。
从文本值转换
从文本中解析时间。
【待解析文本】需要从中获取时间的文本值。
【语言文化】用于将其它语言的文本值转换为时间。如果时间值是和特定语言无关的(如2023-12-13 22:22:00),此处保持默认即可。
【数据格式】在解析特定格式的时间时,可从此参数指定格式内容。
从Unix时间戳转换(秒/毫秒)
Unix时间戳是从1970年1月1日(UTC)开始所经过的秒数(或毫秒数)。但是实际也会遇到一些从本地时间1970年1月1日0点开始计算的时间戳。
如果时间戳是标准的,请选中“使用UTC时间”选项。如果时间戳是以本地时间计算的,请去掉此选项。
时间变量
读取指定时间变量中的值。
第二部分,计算。
在获取的原始时间的基础上,增减指定的时间值,仅需要时填写。
【增加天数】【增加小时数】【增加分钟数】【增加秒数】:正值表示增加,负值表示减少的时间值。可以为小数。
【增加的月数】需要为整数,正值表示增加,负值表示减少。不会跨月,比如3月31日加1个月等于4月30日。
第三部分,设定输出文本的格式
如果不需要输出“文本值”,则可忽略本部分参数。
【输出文本值格式】
用于控制输出参数中的“文本值”的日期时间格式。请参考C#日期时间格式化相关内容。
如,使用“yyyy-MM-dd HH:mm:ss”,得到的文本值为“2020-06-16 10:38:32”
【输出语言文化】
当需要输出其它语言的时间文本时,设定目标语言信息。
常用格式指令字符
标准日期时间格式字符串(参考,下表为此参考文档内容摘录)
指定某个标准格式,这里的格式说明符需要单独使用,不能组合。
格式说明符 | 描述 | 示例 |
d | 短日期模式。 。 | 2009-06-15T13:45:30 -> 6/15/2009 (en-US) |
D | 长日期模式。 。 | 2009-06-15T13:45:30 -> Monday, June 15, 2009 (en-US) |
f | 完整日期/时间模式(短时间)。 。 | 2009-06-15T13:45:30 -> Monday, June 15, 2009 1:45 PM (en-US) |
F | 完整日期/时间模式(长时间)。 。 | 2009-06-15T13:45:30 -> Monday, June 15, 2009 1:45:30 PM (en-US) |
g | 常规日期/时间模式(短时间)。 。 | 2009-06-15T13:45:30 -> 6/15/2009 1:45 PM (en-US) |
G | 常规日期/时间模式(长时间)。 。 | 2009-06-15T13:45:30 -> 6/15/2009 1:45:30 PM (en-US) |
M、m | 月/日模式。 。 | 2009-06-15T13:45:30 -> June 15 (en-US) |
O、o | 往返日期/时间模式。 。 | 值: 值: |
R、r | RFC1123 模式。 。 | 2009-06-15T13:45:30 -> Mon, 15 Jun 2009 20:45:30 GMT |
s | 可排序日期/时间模式。 。 | 2009-06-15T13:45:30 (DateTimeKind.Local) -> 2009-06-15T13:45:30 |
t | 短时间模式。 。 | 2009-06-15T13:45:30 -> 1:45 PM (en-US) |
T | 长时间模式。 。 | 2009-06-15T13:45:30 -> 1:45:30 PM (en-US) |
u | 通用可排序日期/时间模式。 。 | 含 DateTime 值:2009-06-15T13:45:30 -> 2009-06-15 13:45:30Z 值:2009-06-15T13:45:30 -> 2009-06-15 20:45:30Z |
U | 通用完整日期/时间模式。 。 | 2009-06-15T13:45:30 -> Monday, June 15, 2009 8:45:30 PM (en-US) |
Y、y | 年月模式。 。 | 2009-06-15T13:45:30 -> June 2009 (en-US) |
自定义日期时间格式字符串(参考)
可组合使用。如yyyy-MM-dd
符号 | 说明 | 示例(2016-05-09 13:09:55:2350) |
yy | 年份后两位 | 16 |
yyyy | 4位年份 | 2016 |
MM | 两位月份;单数月份前面用0填充 | 05 |
M | 不补0的自然数月份 | 5 |
dd | 长日期,前面补0 | 09 |
d | 短日期,前面不补0 | 9 |
ddd | 周几 | 周一 |
dddd | 星期几 | 星期一 |
hh | 12小时制的小时数 | 01 |
h | 不补0的小时数 | 1 |
HH | 24小时制的小时数 | 13 |
H | 不补0的小时数 | 13 |
mm | 分钟数 | 09 |
m | 不补0的分钟数 | 9 |
ss | 秒数 | 05 |
s | 不补0的秒数 | 5 |
ff | 毫秒数前2位 | 23 |
fff | 毫秒数前3位 | 235 |
ffff | 毫秒数前4位 | 2350 |
分隔符 | 可使用分隔符来分隔年月日时分秒。 包含的值可为:-、/、:等非关键字符(中文也可以) | yyyy-MM-dd HH:mm:ss:ffff => 2016-05-09 13:09:55:2350 yyyy/MM/dd HH:mm:ss:ffff => 2016/05/09 13:09:55:2350 yyyy/MM/dd HH:mm:ss:ffff dddd => 2016/05/09 13:09:55:2350 星期一 yyyy年MM月dd日 HH时mm分ss秒 => 2016年05月09日 13时09分55秒 |
输出
【原始值】计算得到的时间类型变量值。
【文本值】依据输入参数“文本值格式”,将原始值转换成的文本格式,用于输出到文本变量中。
【Unix时间戳】将原始值转换为Unix时间戳。此处不考虑原始值是本地时间还是UTC时间。
【年】【月】【日】【时】【分】【秒】时间值中对应的数据。
【周第几天】是一周中的第几天。周日为0,周一为1,以此类推。
【年第几天】是当年的第几天。
表达式
也可以使用表达式的方式代替本模块的功能。
例如:
- $= "当前时间是:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
- 将一个文本加上当前时间的文本值
- $=DateTime.Now.Year
- 得到当前年份数字
示例动作
参考
- c# DateTime日期格式化 https://www.cnblogs.com/polk6/p/5465088.html
- 组合成文本模块 https://www.yuque.com/quicker/help/formatstring
更新历史
- 20230213 增加输入文本格式/语言,输出文本语言等参数(需Quicker1.36.33+版本)。完善文档。