0

使用 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”

我需要知道如何添加/减去时间并且只显示时钟。

4

4 回答 4

2

无需添加时间跨度,只需调用 AddHours 方法:

myDateTime.AddHours(2).ToLongTimeString();
于 2011-05-17T20:25:04.853 回答
1

myDateTime.ToShortTimeString() 只会返回时间

或者Tejs如前所述,您可以使用ToLongTimeString()我想更适合您的要求。

您可以使用添加或减去小时数dateTime.AddHours(even hours in negative)或减去您也可以使用dateTime.Subtract(time to subtract)

于 2011-05-17T20:24:35.513 回答
0

使用时间跨度方法的 .ToString() 方法可以让您以所需的任何格式输出日期。请参阅http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

于 2011-05-17T20:26:47.083 回答
0
  1. 对于您的时区需求,请使用类似于此 MSDN 文章中建议的方法。尤其:
    1. 用于ConvertTimeToUtc在执行任何算术之前获取 UTC 时间。
    2. 执行所需的算术。
    3. 使用 . 转换回本地时间TimeZoneInfo.ConvertTime
  2. 要获取 a 的时间部分DateTime,请使用DateTime.ToShortTimeString(). 请注意,这是文化感知的,因此如果您想要固定格式,请考虑使用DateTime.ToString()指定格式。
于 2011-05-17T20:29:32.877 回答