мудрый дизайн почему 0:00 не возвращает 2 цифры? - PullRequest
0 голосов
/ 15 октября 2010

Вот пример.Я ожидал 1900/01/02, но вместо этого получил 1900/1/2.Если бы «1» был int, он бы работал.Почему это не возвращает 2 цифры?Я понимаю, что это строка, но не точка: 00, чтобы указать цифры?Почему это игнорируется?

var date = string.Format("{0:0000}/{1:00}/{2:00}", "1900", "1", "2");

Ответы [ 3 ]

3 голосов
/ 15 октября 2010

Почему вы пытаетесь отформатировать дату из 3 строк вместо использования переменной DateTime?

Тогда вы можете легко отформатировать его:

DateTime dt = ...;
var dateString = dt.ToString("yyyy/MM/dd");
// yyyy = 4-digit year, MM = 2 digit month, dd = 2 digit day (with leading 0's)
3 голосов
/ 15 октября 2010

Поскольку строки не могут быть отформатированы как числа;однако вы можете указать ширину целевой строки (но они будут дополнены пробелами, а не 0).

var date = string.Format("{0,4}/{1,2}/{2,2}", "1900", "1", "2");
0 голосов
/ 15 октября 2010

Вам нужно преобразовать в целое число, прежде чем его можно будет отформатировать как число:

var date = string.Format("{0:0000}/{1:00}/{2:00}", int.Parse("1900"), int.Parse("1"), int.Parse("2"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...