【发布时间】:2021-05-31 17:13:09
【问题描述】:
我觉得这很容易,但我就是无法破解它并且在它上面花费了太多时间。我正在尝试将 w2037.4 09:00 转换为日期时间。
我最终希望以上时间为 09/10/2020 09:00。
我试过 ParseDate(RXReplace([value],"w"," ","i"),"yyww.d HH:mm") 但这绝对不是。
感谢任何帮助,谢谢。
【问题讨论】:
标签: calculated-columns spotfire
我觉得这很容易,但我就是无法破解它并且在它上面花费了太多时间。我正在尝试将 w2037.4 09:00 转换为日期时间。
我最终希望以上时间为 09/10/2020 09:00。
我试过 ParseDate(RXReplace([value],"w"," ","i"),"yyww.d HH:mm") 但这绝对不是。
感谢任何帮助,谢谢。
【问题讨论】:
标签: calculated-columns spotfire
我希望这会有所帮助,即使它没有提供完整的答案。
我认为您要查找的日期是 9 月 10 日(而不是我最初认为的 10 月 9 日 - 请记住指定日期格式,因为它们因国家/地区而异)。 据我了解,您原来的专栏是由
我在 Spotfire 中找不到可以为您提供星期和星期几的日期的功能。可以用 TERR 表达式吗?
对于您给出的具体示例,这对我有用,但它不是万无一失的 - 星期和星期几很棘手,因为它们取决于您的本地/区域设置。就我而言,我减去了一天以使其正常工作,但您可能不想要它。此外,开源 R 和 TERR 对周格式给出不同的结果。
所以我使用的TERR Expression函数是:
mydatetime=sapply(input1,function(x) sub('w','',x)) #remove the w
turnToDate = function(x) {
x.vector=strsplit(x,' ')[[1]] #separate date and time parts
x.date=x.vector[1] #store date portion
#is this correct? Remove if not!
x.date=as.character(as.numeric(x.date)+.1) #add a day
x.time=x.vector[2] #store time portion
y.date=as.Date(x.date,format = "%y%W.%w",tz='GMT') #convert week to date
y.datetime=paste(y.date,x.time) #add time as string
return (as.POSIXct(y.datetime,origin="1970-01-01 00:00:00"))
}
#do not use sapply as dates turn to numbers
output=Reduce(c,lapply(mydatetime,turnToDate))
我创建了它(从数据>数据函数属性>表达式函数菜单),名称为 TERR_convert,作为返回日期时间的列函数。然后创建了一个计算列:
TERR_convert([value])
【讨论】: