Как я могу отформатировать дату с точностью до миллисекунды И с отступом влево? - PullRequest
0 голосов
/ 01 июня 2018

Для вызова API мне нужно представить DateTime в виде строки, включающей миллисекунды, но в формате, который не поддерживается DateTime.ToString.

В частности, мне нужно захватить дату, включающую 3 десятичных знака миллисекунд (то есть миллисекунд, но не микросекунд), и отправить оставленное с добавлением нуля на 4 место.Поэтому, если фактические миллисекунды равны 123, мне нужно отправить 0123.(Я знаю, что миллисекунды всегда <1000, и поэтому никогда бы не понадобилось 4 места, но я не проектировал и не контролировал этот API.) </p>

Я хотел сделать простую вещь и использоватьформат, такой как yyyyMMddHHmmssffff, но кажется, что это показывает миллисекунды с точностью до 4 цифр, а не три цифры с левым отступом.

Я знаю, что я мог бы разделить дату на второе и субсекундное разрешение, отформатировать ихотдельно, и объединить, но это кажется klunky.

Есть ли встроенная строка формата, которая делает то, что мне нужно?

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Так как вы хотите, чтобы 0 всегда было 0, несмотря ни на что, нет необходимости делать его динамическим, вы можете просто добавить его как символ:

yyyyMMddHHmmss0fff
0 голосов
/ 01 июня 2018

Так как это очень вводящий в заблуждение и подверженный ошибкам пользователя способ представления даты, учитывая, что «0123» будет интерпретироваться как 12,3 миллисекунды, я бы сказал, нет, нет способа сделать это, кроме способа «klunky»Вы упомянули.

...