我正在使用以下内容进行数据转换:
<cfset Year = Left(mbTimeStamp_dt,4)>
<cfset Month = mid(mbTimeStamp_dt,5,2)>
<cfset Date = mid(mbTimeStamp_dt,7,2)>
<cfset Hour = mid(mbTimeStamp_dt,9,2)>
<cfset Minute = right(mbTimeStamp_dt,2)>
<cfset NewDate= "#Createdatetime(Year,Month,Date,Hour,Minute,00)#">
<cfset PSTTime = #DateConvert("UTC2Local", NewDate )# >
<cfset ESTTime = DateAdd('h',3,PSTTime)>
但我在以下一行收到错误:
<cfset NewDate= "#Createdatetime(Year,Month,Date,Hour,Minute,00)#">
错误消息:“值1-无法转换为数字。”
我做错了吗?供您参考,我的mbTimestamp_dt
值如下所示:
2013-06-06 11:51:37
答案 0 :(得分:5)
除了年份之外,所有字符串解析函数都返回不正确的值。正如其他人所说的那样,在尝试对它们做任何事情之前输出这些值,你就会看到什么是错的。
旁注。您可以使用一些内置的ColdFusion日期/时间函数来获取相关值,而不是手动解析字符串。
<cfset Year = Year(mbTimeStamp_dt)>
<cfset Month = Month(mbTimeStamp_dt)>
<cfset Day = Day(mbTimeStamp_dt)>
<cfset Hour = Hour(mbTimeStamp_dt)>
<cfset Minute = Minute(mbTimeStamp_dt)>
<cfset NewDate = createDateTime(Year, Month, Day, Hour, Minute, 00)>
<cfset PSTTime = dateConvert("UTC2Local", NewDate)>
<cfset ESTTime = dateAdd('h', 3, PSTTime)>
我将变量Date
更改为Day
以避免歧义。
希望有所帮助。
答案 1 :(得分:0)
输出每个变量。带有连字符的那个是引起问题的那个。然后看看你的字符串函数。
确保使用给出1位和2位数字的时间戳测试月份,日期,小时和分钟函数。
修改强>
与您的问题无关,但是您要将时间戳字符串中的秒数分配给分钟变量。