Рейтинг:
23
Richard Deeming
То DateTime
тип[^] не имеет формата. Значение хранится как число "тиков" (100 наносекунд) с полуночи 1 января 0001 года н. э. (н. э.) по Григорианскому календарю.
То, что вы видите, - это представление отладчика этого значения, которое преобразует DateTime
к строке, использующей стандартный формат.
Когда вы показываете DateTime
для пользователя вы можете использовать стандарт[^] или традиция[^] форматируйте строки, чтобы отобразить их так, как вы хотите.
Sergey Alexandrovich Kryukov
5ед.
—СА
User1454
Сэр, я прошел через эти "стандартные строки формата даты и времени" и "пользовательские строки формата даты и времени", которые были очень полезны для меня... !!!!!!!! спасибо большое !!!
Рейтинг:
19
OriginalGriff
String - я получаю исключение формата, потому что "гггг" не является известным кодом формата: он должен быть:
String strDate = "24/01/2013 00:00:00";
DateTime date = DateTime.ParseExact(strDate, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
Console.WriteLine(date);
Что дает мне:
24/01/2013 00:00:00
Я подозреваю, что ваш вывод форматирует данные в 12-часовой формат (AM/PM) вместо этого:
Console.WriteLine(date.ToString("dd/MM/yyyy hh:mm:ss"));
Так что попробуй:
Console.WriteLine(date.ToString("dd/MM/yyyy HH:mm:ss"));
Что может ввести вас в заблуждение.
User1454
Извините за это !!!, я дал только "гггг", но все равно он дает мне "15-08-2015 AM 12:00:00". У меня есть сомнения whether..in в любом случае это будет принимать системный формат, потому что любое значение, которое я получаю, точно соответствует моему системному формату. Если я перейду на 24-часовой формат на своем компьютере, я получу необходимый.
OriginalGriff
Это именно то, что есть - если вы не указываете формат, то используется текущий системный формат - и ваш компьютер настроен на использование AM/PM, так что это будет показано. Мой установлен на 24 часа, так что я получаю правильный дисплей.
Сохраненная Дата-Время будет точно такой же (поскольку это число миллисекунд с произвольного момента времени, а не отформатированные дата и время).
Richard Deeming
Это целый ряд галочки (100 наносекунд), не миллисекунды. :)
User1454
Сэр, значит, вы имели в виду, что я должен указать формат, например, как вы указали в своем ответе (дата.ToString("dd/MM/yyyy hh:mm:ss"))? так ли это?
OriginalGriff
Это только для представления пользователю - вычисления в вашем приложении должны использовать значение DateTime, которое не имеет никакого связанного с ним формата.
Две строки формата, которые я показал, дают разные результаты: "hh:mm:ss" всегда будет давать формат AM/PM, независимо от настроек компьютера; "HH:mm:ss" всегда будет давать 24-часовой формат. Вы можете посмотреть здесь:
http://www.codeproject.com/Tips/54577/Formatting-a-DateTime-for-display-format-string-de
Он показывает различные форматы и то, что они делают.
Если вы вообще не указываете формат, то всегда будут использоваться текущие настройки ПК. Таким образом, для отображения отладки в VS и так далее вы всегда получаете свои системные настройки.
User1454
Спасибо вам..... это было очень полезно !!!! :)
OriginalGriff
Всегда пожалуйста!