C#,如何使时钟在增加的小时数下工作
本文关键字:小时 工作 增加 何使 时钟 | 更新日期: 2023-09-27 17:56:50
使用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 小时,但是,除了实际时钟之外,我还得到了它剩下的日期,例如:
"2011-05-17 22:38:00"
我需要知道如何加/减小时并且只显示时钟。
无需添加时间跨度,只需调用 AddHours 方法:
myDateTime.AddHours(2).ToLongTimeString();
myDateTime.ToShortTimeString() 将只返回你时间
或者正如Tejs
提到的,您可以使用我想更适合您要求的ToLongTimeString()
。
对于增加或减去小时数,您可以使用dateTime.AddHours(even hours in negative)
或减去,您也可以使用dateTime.Subtract(time to subtract)
使用 .时间跨度方法的 ToString() 方法允许您以所需的任何格式输出日期。请参阅 http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
- 对于您的时区需求,请使用类似于此 MSDN 文章中建议的方法。特别是:
- 在执行任何算术之前,使用
ConvertTimeToUtc
获取 UTC 时间。 - 执行所需的算术。
- 使用
TimeZoneInfo.ConvertTime
转换回本地时间。
- 在执行任何算术之前,使用
- 要只获取
DateTime
的时间部分,请使用DateTime.ToShortTimeString()
。请注意,这是区域性感知的,因此如果需要固定格式,请考虑使用DateTime.ToString()
指定格式。