Red语言0.6.4:如何从now获取yyyymmdd_hhmm格式日期时间串
解决Red语言中格式化日期时间为yyyymmdd_hhmm格式的问题
没问题,我来帮你搞定这个日期格式化的需求!针对Red 0.6.4版本,咱们可以通过提取now对象的各个时间字段,补全前导零后拼接成目标格式,具体实现如下:
分步实现版本(适合理解逻辑)
Red [] ; 获取当前完整的日期时间对象 current-dt: now ; 提取各时间部分并确保是两位数字(单个数字补前导零) year-str: form current-dt/year ; 年份是四位,无需补零 month-str: form pad current-dt/month 2 ; 月份补零,比如6→"06" day-str: form pad current-dt/day 2 ; 日期补零,比如8→"08" hour-str: form pad current-dt/hour 2 ; 小时补零,比如9→"09" minute-str: form pad current-dt/minute 2; 分钟补零,比如5→"05" ; 拼接成目标格式的字符串 formatted-datetime: rejoin [year-str month-str day-str "_" hour-str minute-str] ; 输出结果 print formatted-datetime
简洁版(一行搞定)
如果觉得上面的代码太啰嗦,也可以直接写成一行,逻辑是完全一致的:
Red [] print rejoin [form now/year pad now/month 2 pad now/day 2 "_" pad now/hour 2 pad now/minute 2]
关键知识点解释
now:Red内置函数,返回包含完整日期时间信息的对象,你可以通过now/year、now/month等方式直接提取对应字段pad:用来给数值补前导零的函数,pad 数值 位数可以确保输出的字符串是指定长度,不足的话前面补零form:把非字符串类型的值转换成字符串,方便后续拼接rejoin:把多个字符串片段拼接成一个完整的字符串
运行这段代码后,就能得到你需要的20190608_2146这类格式的日期时间字符串啦!
内容的提问来源于stack exchange,提问作者Alex Baban
相关产品推荐
相关产品推荐

