对于许多远程请求和响应,日期/时间值通常可以以 ISO 格式返回。在您的情况下,掩码如下所示:
YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
在此 ISO 格式中,T 字符串是时间戳记在字符串中开始的标记的文字表示(直接跟在偏移量后面)。
下面是一个可重用的函数,它将 ISO 日期格式转换为可用的 ColdFusion 日期时间对象:
<cffunction name="ISOToDateTime" access="public" returntype="string" output="false"
hint="Converts an ISO 8601 date/time stamp with optional dashes to a ColdFusion
date/time stamp.">
<cfargument name="Date" type="string" required="true" hint="ISO 8601 date/time stamp." />
<cfreturn ARGUMENTS.Date.ReplaceFirst(
"^.*?(\d{4})-?(\d{2})-?(\d{2})T([\d:]+).*$",
"$1-$2-$3 $4"
) />
</cffunction>
然后,您可以像这样调用该函数来输出或返回对 ColdFusion 友好的日期时间版本:
ISOToDateTime( "2013-03-25T14:30:40-04:00" )
该功能由 Ben Nadel 提供。原始博客文章可以在这里找到:
http://www.bennadel.com/blog/811-Converting-ISO-Date-Time-To-ColdFusion-Date-Time.htm
如果需要,您还可以使用偏移量转换日期时间值。Ben Nadel 再次发表了一篇很棒的博文,概述了如何实现这一目标:
http://www.bennadel.com/blog/1595-Converting-To-GMT-And-From-GMT-In-ColdFusion-For-Use-With-HTTP-Time-Stamps.htm