C# System.DateTime.Now дает мне дату со временем, но он дает мне формат, который я установил в windows calander ie (am) (pm) или даже (xyz), как получить стандартный формат времени (AM/PM), независимо от настроенного формата времени, установленного в каландре Windows?C# System.DateTime.Now возвращает настроенный формат времени, заданный в окнах
ответ
Если вы используете DateTime как тип DateTime, то он автоматически покажет вам формат ваших окон. Для произвольного формата, вы должны бросить его в виде строки
string newdate = DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
полезная ссылка MSDN
rehman ваше решение отлично работает, поскольку оно показывает мне правильный AM.PM format при получении DateTime (независимо от того, что я установлен как xyz вместо AM или abc вместо PM). но CultureInfo.InvarinatCuture не зависит от ценностей культуры? или где-нибудь это может столкнуться с cuiltural указанных форматов? – Ayazz
Инвариантная культура нечувствительна к культуре; он связан с английским языком, но не с какой-либо страной/регионом, посмотрите здесь https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.invariantculture(v=vs.110) .aspx – Mostafiz
Я прочитал эту статью, просто хотел спросить у вас опыта работы с CultureInfo, спасибо, хотя – Ayazz
System.DateTime.Now
не имеет формата представления, это формат ToString()
, который его форматирует.
Как:
System.DateTime.Now.ToString("dd, MM");
проверка MSDN для получения дополнительной информации: https://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
попытайтесь изменить время в Windows AM/PM для пользовательских значений, таких как xyz, затем проверьте с помощью System.DateTime.Now ... это даст вам mm/dd/yyyy hh: mm: ss xyz – Ayazz
показать код. –
DateTime - это просто то, что у него нет особого «формата» - если вы хотите, чтобы он показывался в формате, который вы делаете с ним ... – BugFinder
Способ представления даты не имеет ничего общего с ее значением. –