我在Windows上使用"Red Programming Language“版本"0.6.4”,并制作了一个命令行应用程序。
我不太懂Red语言,也不懂很多东西。在这里提问之前,我确实在(https://doc.red-lang.org/en/)上浏览了“正在进行的工作”文档。
我需要获取一个格式为yyyymmdd_hhmm
的日期和时间字符串。
我从下面这样的代码开始:
Red []
dt: to string! now/year
print dt
这给了我2019
,但我需要每月、每天和时间来获得像20190608_2146
这样的东西
我也试过了:
Red []
dt: to string! now/precise
print dt
这给了我8-Jun-2019/21:47:51.299-07:00
,但我需要的是20190608_2147
问题:
如何修改上面的代码以从now
获得类似于20190608_2147
的内容
谢谢。
发布于 2019-06-09 14:30:59
我已经为Rebol和Red编写了一个名为'Form Date‘的脚本,它将以类似于STRFTIME的方式格式化日期/时间。红色版本是here。
do %form-date.red
probe form-date now "%Y%m%d_%H%M"
print first spec-of :form-date
脚本中有一些单独的代码片段,用于格式化日期的各个组成部分!价值。
不过,您不需要特定示例的脚本,您可以提取并加入各种组件,如下所示:
date: now
rejoin [ ; reduce-join
form date/year
pad/left/with date/month 2 #"0"
pad/left/with date/day 2 #"0"
"_"
pad/left/with date/hour 2 #"0"
pad/left/with date/minute 2 #"0"
]
发布于 2019-06-21 14:06:58
由于上面的解决方案在Rebol2下有一些问题,这里的变体与Rebol和Red以相同的方式工作
date: now
rejoin [
date/year
next form 100 + date/month
next form 100 + date/day
"_"
next form 100 + date/time/hour
next form 100 + date/time/minute
]
发布于 2019-09-05 10:55:37
下面是另一种方法:
rejoin [
now/year
either 10 > x: (now/month) [join "0" x][x]
either 10 > x: (now/day) [join "0" x][x]
"_"
either 10 > x: first (now/time) [join "0" x][x]
either 10 > x: second (now/time) [join "0" x][x]
]
Red有pad
,所以rgchris的答案是好的。然而,不需要像rgchris那样使用date: now
:
rejoin [
now/year
pad/left/with now/month 2 #"0"
pad/left/with now/day 2 #"0"
"_"
pad/left/with first (now/time) 2 #"0"
pad/left/with second (now/time) 2 #"0"
]
https://stackoverflow.com/questions/56512086
复制相似问题