Datetime ColdFusion:如何解析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

我找到了这个函数,但它只根据英语(美国)语言环境约定解析日期/时间字符串

如何解析dd/mm/yyyy格式的日期

试试这个:

<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方法。