Datetime ColdFusion:如何解析dd/mm/yyyy格式的日期?
我找到了这个函数,但它只根据英语(美国)语言环境约定解析日期/时间字符串 如何解析dd/mm/yyyy格式的日期 试试这个:Datetime ColdFusion:如何解析dd/mm/yyyy格式的日期?,datetime,coldfusion,Datetime,Coldfusion,我找到了这个函数,但它只根据英语(美国)语言环境约定解析日期/时间字符串 如何解析dd/mm/yyyy格式的日期 试试这个: <cfset TestdateFrom = ParseDateTime("10/9/2010") /> <cfloop index="i" from="1" to="30" step="1"> <cfset TestdateFrom = DateAdd( "d", 1, TestdateFrom ) /> #Testda
<cfset TestdateFrom = ParseDateTime("10/9/2010") />
<cfloop index="i" from="1" to="30" step="1">
<cfset TestdateFrom = DateAdd( "d", 1, TestdateFrom ) />
#TestdateFrom#<br/>
</cfloop>
#TestdateFrom#
在CF9中有一个函数
我不知道这对我是否有帮助
最后,我应该使用java库来解决这个问题吗?看起来这是可行的:
<cfset formatter = createObject("java","java.text.SimpleDateFormat")>
<cfset formatter.init("dd/MM/yyyy")>
<cfset newDate = formatter.parse("10/09/2010")>
#newDate#
#新日期#
还有其他建议吗?您需要使用lsParseDateTime()。这是特定于区域设置的日期分析器 您可以直接将区域设置传递给函数的第二个参数,也可以使用setlocale()为请求设置区域设置
您可能会发现查看其他LS前缀函数也很有用。我已经成功使用此技术处理以自由文本形式输入的(英国格式)日期:
<cfset SetLocale("English (UK)")>
<cfset valid = true>
<!--- Convert DD-MM-YYYY or DD.MM.YYYY to DD/MM/YYYY --->
<cfset dt = replacelist(dt, ".,-", "/,/")>
<!--- count date elememnts (must be 3 - LSParseDateTime will make potentially incorrect assumptions otherwise) --->
<cfif listlen(dt, "/") neq 3>
<!--- wrong number of elements --->
<cfset valid = false>
<cfelse>
<!--- Correct number of elements so try to interpret as date/time object --->
<cftry>
<cfset dt = LSParseDateTime(dt)>
<cfcatch type="Expression">
<cfset valid = false>
</cfcatch>
</cftry>
</cfif>
如果在此结束时valid为true,则dt中的字符串日期表示形式已转换为日期/时间对象。替换列表步骤允许将日期输入为DD.MM.YYYY或DD-MM-YYYY以及DD/MM/YYYY 如果格式一致,也可以执行以下操作:
<cfset dy=listGetAt(dateString,1,"/")>
<cfset mo=listGetAt(dateString,2,"/")>
<cfset yr=listGetAt(dateString,3,"/")>
<cfset myDate=createDate(yr,mo,dy)>
但是,真的是最好的。忘了提到LSParseDateTime至少从4.5版开始就可以使用,以防有人读到它并认为它在CF9中是新的。您到底想做什么,或者您希望最终得到什么?我在这种方法上取得了很好的成功-它非常灵活,适用于各种格式的日期,这不能说是纯粹的ColdFusion方法。