2011-05-17 72 views
0

使用Visual Studio 2008(C#)我必须使用当前时区小时制作一个工作时钟(数字),并使用不同时区(如纽约等)制作一些工作时钟(数字)。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”

我需要知道如何添加/减去小时,只显示时钟。

回答

2

而不是增加一个时间跨度的,只需调用AddHours方法:

myDateTime.AddHours(2).ToLongTimeString(); 
+0

太棒了! 非常简单但完美的工作,非常感谢您的快速和准确的响应;) – Madcowe 2011-05-17 20:31:44

1

myDateTime.ToShortTimeString()将返回唯一的一次

或提到您可以使用ToLongTimeString(),我想更适合你的需求Tejs

对于加或减小时,你可以用dateTime.AddHours(even hours in negative)或减去你也可以使用dateTime.Subtract(time to subtract)

0
  1. 对于您所在的时区,请使用与this MSDN article中建议的方法类似的方法。值得注意的是:
    1. 使用ConvertTimeToUtc获得UTC时间,然后再执行任何运算。
    2. 执行所需的算术运算。
    3. 使用TimeZoneInfo.ConvertTime转换回当地时间。
  2. 要获取DateTime的时间部分,请使用DateTime.ToShortTimeString()。请注意,这是文化意识,所以如果你想要一个固定的格式,请考虑使用DateTime.ToString()来指定一种格式。