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"

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

C#,如何使时钟在增加的小时数下工作

无需添加时间跨度,只需调用 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

  1. 对于您的时区需求,请使用类似于此 MSDN 文章中建议的方法。特别是:
    1. 在执行任何算术之前,使用 ConvertTimeToUtc 获取 UTC 时间。
    2. 执行所需的算术。
    3. 使用 TimeZoneInfo.ConvertTime 转换回本地时间。
  2. 要只获取DateTime的时间部分,请使用 DateTime.ToShortTimeString() 。请注意,这是区域性感知的,因此如果需要固定格式,请考虑使用 DateTime.ToString() 指定格式。