Когда я запускаю этот тестовый код на моей машине для разработки, он работает как положено.CF9.01
Я нахожусь в Европе, используя формат даты в евро, поэтому 10 сентября 1957 года - 10 сентября 1957 года.*
Тот же код, вывод на работающем сервере:
Initial string = "10/09/1957"
LSparsedatetime output = {ts '1957-10-09 00:00:00'}
parsedatetime output = {ts '1957-10-09 00:00:00'}
Операционная система сервера - Windows Web Server 2008 R2.Я проверил Панель управления> установка даты и времени, и она правильно установлена на Лондон.Веб-сервер - IIS7, но я не думаю, что это повлияет на что-либо?
В регионе и на языке, местоположение установлено на Соединенное Королевство, а в административном (изменить язык системы) это также правильно, как на английском (Великобритания)
Обновление: что касается CF, он считает, что сервер находится в США.
Запуск этого ...
<cfset testDate="10/09/1957">
<cfoutput>
Initial string = "#testDate#"<br>
#getLocale()#:<br>
LSparsedatetime output = #lsparsedatetime(testDate)#<br>
parsedatetime output = #parsedatetime(testDate)#<br>
<P>
<cfset SetLocale("en_GB") />
en_GB:<br>
LSparsedatetime output = #lsparsedatetime(testDate)#<br>
parsedatetime output = #parsedatetime(testDate)#<br>
</cfoutput>
Дает этот вывод
Initial string = "10/09/1957"
English (US):
LSparsedatetime output = {ts '1957-10-09 00:00:00'}
parsedatetime output = {ts '1957-10-09 00:00:00'}
en_GB:
LSparsedatetime output = {ts '1957-09-10 00:00:00'}
parsedatetime output = {ts '1957-10-09 00:00:00'}
Но вот подтверждение настроек сервера.
Принудительное задание локали с помощью setLocale в коде приводит к правильному поведению.