c# Объясните почему меняется знак ":" на знак "." при форматировании строки
Код такой
string strFilter = $" > '{lastupdated:yyyy-MM-dd HH:mm}'";
Если я его выведу на печать в консоль, то получаю вот это
> '2023-02-16 10.06'
Строка используется для доступа к специфичному СДК, поэтому сохранить двоеточие я обязан. Как это сделать?
Сразу скажу, что при обрезании значения я получаю нужные данные только для даты, но они не столько детализированы по времени как мне нужно.
UPDATE
Мои предположения не подтвердились. В любом месте данного проекта, форматирование даты приводит к результату с точкой.
Сначала думал, что логгер не верно выводит. Вывел просто в консоль. Все одно. Двоеточие меняется на точку.
Форматы которые перебрал:
yyyy-MM-dd HH:MM:ss.fff-> вывод '2023-02-17 13.02.47.000'yyyy-MM-dd HH:MM-> вывод '2023-02-17 13.02'yyyy-MM-dd HH:MM:ss-> вывод '2023-02-17 13.02.47'
Ответы (2 шт):
Источник проблемы не найден и я остановился в поиске. Запихнул такой костыль
string strDateTime = $" > '{lastupdated:yyyy-MM-dd HH:mm}'".Replace(".", ":");
Игры с System.Globalization так же не принесли результата. Создавать кастомный CultureInfo как описано в документации не стал. Оказалось еще более громоздко.
Попробуйте обернуть : в апострофы:
string strFilter = $" > '{lastupdated:yyyy-MM-dd HH':'mm}'";