c# Объясните почему меняется знак ":" на знак "." при форматировании строки

Рейтинг: 1Ответов: 2Опубликовано: 16.02.2023

Код такой

string strFilter = $" > '{lastupdated:yyyy-MM-dd HH:mm}'";

Если я его выведу на печать в консоль, то получаю вот это

> '2023-02-16 10.06'

Строка используется для доступа к специфичному СДК, поэтому сохранить двоеточие я обязан. Как это сделать?

Сразу скажу, что при обрезании значения я получаю нужные данные только для даты, но они не столько детализированы по времени как мне нужно.

UPDATE

Мои предположения не подтвердились. В любом месте данного проекта, форматирование даты приводит к результату с точкой.

Сначала думал, что логгер не верно выводит. Вывел просто в консоль. Все одно. Двоеточие меняется на точку.

Форматы которые перебрал:

  1. yyyy-MM-dd HH:MM:ss.fff -> вывод '2023-02-17 13.02.47.000'
  2. yyyy-MM-dd HH:MM -> вывод '2023-02-17 13.02'
  3. yyyy-MM-dd HH:MM:ss -> вывод '2023-02-17 13.02.47'

Ответы

▲ 2Принят

Попробуйте обернуть : в апострофы:

string strFilter = $" > '{lastupdated:yyyy-MM-dd HH':'mm}'";

Про разделитель между временем

▲ 1

Источник проблемы не найден и я остановился в поиске. Запихнул такой костыль

string strDateTime = $" > '{lastupdated:yyyy-MM-dd HH:mm}'".Replace(".", ":");

Игры с System.Globalization так же не принесли результата. Создавать кастомный CultureInfo как описано в документации не стал. Оказалось еще более громоздко.