(слишком долго для комментариев ...)
time = '#mid (строка, 9,2) -8 #
Не просто вычитайте 8 из часа, потому что он вернет недопустимые значения, такие как «-1» AM или «-8» AM, когда значение UTC находится между полуночью и 7:00.
Кроме того, если вы переводите значение в местное время, не забывайте об изменениях летнего времени. Смещение 8 часов может измениться до 7 часов, в зависимости от времени года и зоны. Вместо использования жестко закодированного числа взгляните на функцию DateConvert для преобразования UTC в местное время и используйте ParseDateTime с маской вместо нескольких строковых функций.
Имейте в виду, что есть плюсы, минусы ... и, к сожалению, потенциальные ошибки / ошибки ... со всеми предлагаемыми подходами, в зависимости от вашей версии CF. Поэтому не забудьте протестировать с различными значениями даты и часовых поясов.
Синтаксис ColdFusion 2016+ (Примечание: в течение нескольких минут используется "nn". Пример выполнения )
str = "20190126175631";
utcDate = parseDateTime(str, "yyyyMMddHHnnss");
localDate = DateConvert("utc2Local", utcDate);
writeOutput("utcDate ="& utcDate &" localDate = "& localDate);
Синтаксис ColdFusion 10/11 (Примечание: в течение нескольких минут используется "мм". Пример выполнения )
str = "20190126175631";
utcDate = parseDateTime(str, "yyyyMMddHHmmss");
localDate = DateConvert("utc2Local", utcDate);
writeOutput("utcDate ="& utcDate &" localDate = "& localDate);