Код под вопросом ниже:
public static string ChangePersianDate(DateTime dateTime)
{
System.Globalization.GregorianCalendar PC = new System.Globalization.GregorianCalendar();
PC.CalendarType = System.Globalization.GregorianCalendarTypes.USEnglish;
return
PC.GetYear(dateTime).ToString()
+ "/"
+ PC.GetMonth(dateTime).ToString()
+ "/"
+ PC.GetDayOfMonth(dateTime).ToString()
+ ""
+ PC.GetHour(dateTime).ToString()
+ ":"
+ PC.GetMinute(dateTime).ToString()
+ ":"
+ PC.GetSecond(dateTime).ToString()
+ " "
????????????????
}
как я могу получить AM / PM из dateTime
значения?
c#
.net
datetime
datetime-format
gregorian-calendar
SilverLight
источник
источник
DateTime
чем это. См. Msdn.microsoft.com/en-us/library/8kb3ddd4.aspxdateTime.ToString("tt");
Ответы:
Как насчет:
источник
CultureInfo.InvariantCulture
ToString("tt", System.Globalization.CultureInfo.InvariantCulture)
DateTime.Now.AddHours(12).ToString("tt", CultureInfo.InvariantCulture)
Это должно дать вам строковое значение времени. TT должен добавить утра / вечера.
Вы также можете посмотреть на соответствующую тему:
Как вы получаете текущее время суток?
источник
hh
как ваше текущее представление выводится через 24 часа с утра и вечера, что немного бессмысленноDateTime
Всегда должна быть внутренне в «американском» (григорианского) календаря. Так что если вы делаетеВы должны получить то, что вы хотите, намного меньше.
источник
Очень просто, используя формат строки
на
.ToSTring("") :
если вы используете «чч» - >> Час, используя 12-часовые часы от 01 до 12.
если вы используете «ЧЧ» - >> Час, используя 24-часовые часы с 00 до 23.
если вы добавите "tt" - >> Обозначение Am / Pm.
пример преобразования из 23:12 в 11:12 вечера:
подождите секунду, но это не все, что вам нужно, чтобы позаботиться о чем-то другом, это системная культура, потому что тот же код, выполняемый в Windows с другим языком, особенно с другим языком культуры, даст другой результат с тем же кодом
Пример набора окон для арабского языка покажет так:
// 23:12 م
م означает вечер (первый текст مساء).
В другой системе культура зависит от того, какие региональные настройки и языковые настройки установлены в Windows, и будет отображаться // 23:12 du.
Вы можете переключаться между различными форматами на панели управления Windows в Windows регион и язык -> текущий формат (комбинированный список) и изменить ... применить его, сделать перестройку (выполнить) вашего приложения и посмотреть, о чем идет речь.
просто добавив две строки: ->
первый шаг добавить
using System.Globalization;
поверх вашего кодаи модифицируем предыдущий код так:
InvariantCulture => используя английский формат по умолчанию.
другой вопрос, я хочу, чтобы вечера были на арабском или конкретном языке, даже если я использую окна, настроенные на английский (или другой язык) региональный формат?
Soution for Arabic Exemple:
это покажет // 23:12 م
событие, если моя система настроена на английский формат региона. Вы можете изменить «ar-AE», если вы хотите использовать другой языковой формат. есть список каждого языка и его формат.
примеры:
сообщите мне, если у вас есть другой вопрос.
источник
Я знаю, что это может показаться слишком поздно .. однако это может помочь кому-то там
Я хотел получить часть AM PM, поэтому я использовал то, что посоветовал Энди:
Я использовал эту часть, чтобы создать путь для сохранения моих файлов ... Я построил свои предположения, что я получу либо AM, либо PM, и ничего больше !!
однако, когда я использовал ПК, который по своей культуре не является английским .. (в моем случае ARABIC) .. мое приложение не удалось, потому что формат "tt" вернул что-то новое не AM или PM (م или ص) ..
Таким образом, решение этой проблемы было игнорировать культуру, добавив второй аргумент следующим образом:
.. конечно, вы должны добавить: использование System.Globalization; в верхней части вашего файла, я надеюсь, что это поможет кому-то :)
источник
это довольно просто
источник
Для вашего примера, но есть лучшие способы форматирования даты и времени.
источник
От: http://www.csharp-examples.net/string-format-datetime/
источник
Нечто подобное
bool isPM = GetHour() > 11
. Но если вы хотите отформатировать дату в строку, вам не нужно делать это самостоятельно. Используйте для этого функции форматирования даты .источник
Вы можете проверить это таким образом
Вывод будет таким:
или
источник
Now
Вот более простой способ записать формат времени
(hh:mm:ss tt)
и отобразить их отдельно, если хотите.или просто:
источник
@ Энди ответит хорошо. Но если вы хотите показать время без 24-часового формата, вы можете следовать следующим образом
После этого вы должны получить время вроде «10:35:20 PM» или «10:35:20 AM».
источник
источник
Вот пример кода:
источник
ToLongTimeString()
возвращает значение, основанное на текущей культуре потока. И в отличие от некоторых аналогичных решений , указанных в других ответах, этот код не будет даже работать , если вы установите культуру нить кInvariantCulture
, потому что инвариантные КультурыLongTimePattern
-Какой является то , что определяет возвращаемое значениеToLongTimeString()
-isHH:mm:ss
.