Coldfusion Now() возвращает неправильные минуты

DATEFORMAT(Now(),"yyyy-mm-dd HH:mm:ss.SSS")

При использовании приведенного выше кода ColdFusion всегда возвращает время как 12 минут после часа. В остальном дата/время правильные, но МИНУТЫ всегда установлены на 12 мин.

  • В 2011-12-14 14:02:36.020 возвращенный результат 2011-12-14 14:12:36.020

  • В 2011-12-14 13:27:09.783 возвращенный результат 2011-12-14 13:12:09.783

Кто-нибудь может объяснить, почему? Я помню, что читал что-то об этом в прошлом, но сейчас я тяну пробел.


person nope_four    schedule 14.12.2011    source источник


Ответы (2)


Это не now() неправильно, это ваше форматирование. Вам нужно использовать dateformat() и timeformat() следующим образом:

dateFormat(Now(),"yyyy-mm-dd") & " " & timeFormat(now(), "HH:mm:ss.SSS")
person Barry Jordan    schedule 14.12.2011
comment
Просто чтобы уточнить один момент: ОП видит 12, потому что вместо того, чтобы показывать минуты, он снова показывает значение месяца. - person Jake Feasel; 14.12.2011

В Coldfusion mm представляет месяц, а не минуты. Используйте nn вместо mm:

DATEFORMAT(Now(),"yyyy-mm-dd", "HH:nn:ss.L")
person Goutham Pulipati    schedule 05.05.2015
comment
Стоит отметить, что nn работает только с функцией DateTimeFormat (CF10+). Как следует из названия, DateFormat работает только с датами, поэтому nn не является допустимым параметром маски. Кроме того, если маска является одним параметром, т.е. запятая между маской даты и времени отсутствует - "yyyy-mm-dd HH:nn:ss.L" - person Leigh; 06.05.2015