В 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"))>
Другие вопросы по тегам