В Coldfusion определенная дата 01 июня 2008 г. не преобразуется/не анализируется в объект datetime при использовании метода «CreateODBCDateTime».
<cfoutput>
<cfset mydate = 'June 01, 2008'>
<cfset JobStartDate=CreateODBCDateTime(mydate)>
</cfoutput>
Ошибка: значение даты, переданное функции даты createDateTime, не указано или недействительно. Укажите допустимую дату в функции createDateTime.
Даже isdate(mydate) // isdate('01 июня 2008') вызывает исключение. Даже *DateDiff // DateDiff('m', '01 июня 2008 г.', '14 октября 2010 г.') также дает исключение.
Он нормально работает с другими датами, например: «01 августа 2008 г.», «14 мая 2012 г.» и т. д.
Я использую ColdFusion 2021 Update 3. Будем признательны за любую помощь?
Добавление еще нескольких деталей в ответ на комментарии: В разделе сведений о JVM языковой стандарт по умолчанию для Java — en_US . Также при запуске GetLocale() я получаю английский (США). Проблема не воспроизводится на cftry или cffiddle. Но это можно воспроизвести, если установить Coldfusion через Commandbox и попробовать запустить код.
1 ответ
Просто выполните lsParseDateTime, чтобы исправить это. Вы объявляете это как строку, поэтому CF не будет рассматривать это как дату
<cfset JobStartDate = CreateODBCDateTime(lsParseDateTime(mydate, "en_US"))>