C#,如何让时钟在增加的时间内工作?

时间:2011-05-17 20:22:47

标签: c# time clock timespan hour

使用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 个答案:

答案 0 :(得分:2)

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

myDateTime.AddHours(2).ToLongTimeString();

答案 1 :(得分:1)

myDateTime.ToShortTimeString()只返回时间

Tejs提到您可以使用我认为更符合您要求的ToLongTimeString()

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

答案 2 :(得分:0)

使用timepan方法的.ToString()方法,您可以以任何所需的格式输出日期。见http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

答案 3 :(得分:0)

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