#c# #time #clock #timespan #hour
#c# #время #часы #промежуток времени #час
Вопрос:
Используя Visual Studio 2008 (C #), я должен создать рабочие часы (цифровые) с текущим часовым поясом и еще несколько с разными часовыми поясами, такими как Нью-Йорк и т.д.
внутри формы я помещаю 2 метки (для часов) и таймер, внутри таймера я помещаю этот код:
timer1.Interval = 1000;
label1.Text = DateTime.Now.ToLongTimeString();
DateTime myDateTime = DateTime.Now;
TimeSpan myTimeSpan = new TimeSpan(2, 0, 0);
DateTime myDateTime8 = myDateTime myTimeSpan;
label2.Text = ("" myDateTime8);
часть с временным интервалом добавляет 2 часа к часам, однако вместо просто фактических часов я также получаю дату слева, как, например:
«17-05-2011 22:38:00»
Мне нужно знать, как я могу добавлять / вычитать часы и показывать только часы.
Ответ №1:
Вместо добавления временного интервала просто вызовите метод AddHours:
myDateTime.AddHours(2).ToLongTimeString();
Комментарии:
1. Фантастика! Так просто, но сработало отлично, большое вам спасибо за быстрый и точный ответ 😉
Ответ №2:
myDateTime.Функция ToShortTimeString() вернет вам только время
или, как Tejs
упоминалось, вы можете использовать ToLongTimeString()
то, что, я думаю, больше соответствует вашим требованиям.
Для добавления или вычитания часов вы можете использовать dateTime.AddHours(even hours in negative)
или для вычитания вы также можете использовать dateTime.Subtract(time to subtract)
Ответ №3:
Используя .Метод toString() метода timespan позволяет вам выводить дату в любом формате, который вы хотите. Смотрите http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
Ответ №4:
- Для ваших потребностей в часовом поясе используйте подход, аналогичный тому, который предложен в этой статье MSDN. Примечательно:
- Используйте
ConvertTimeToUtc
для получения времени UTC перед выполнением каких-либо арифметических действий. - Выполните необходимые арифметические действия.
- Преобразовать обратно в местное время с помощью
TimeZoneInfo.ConvertTime
.
- Используйте
- Чтобы получить только временную часть
DateTime
, используйтеDateTime.ToShortTimeString()
. Обратите внимание, что это зависит от культуры, поэтому, если вам нужен фиксированный формат, рассмотрите возможность использованияDateTime.ToString()
для указания формата.