当前项目:使用两个类在C#中创建时间程序Time和ExtendedTime Time只是正常时间,而ExtendedTime具有时区。
启动程序时,我需要单击一个按钮并获取当前时间,但可以选择更改时区。这反过来又改变了时间,并且还可以选择将时间增加这么多小时或几分钟。
目前,这是我的Time类中的displayTime方法:
public virtual string displayTime()
{
DateTime time = DateTime.Now; // Use current time
string format = "MMM ddd d HH:mm yyyy"; // Use this format
MessageBox.Show(time.ToString(format)); // Write to console
return time.ToString(format);
}//end of displayTime
除非我每次都称之为无关紧要,因为DateTime.Now
我不完全确定如何解决这个问题。我确信我可以做一次性交易,但不确定语法。
答案 0 :(得分:5)
您可以使用TimeSpan类来操作DateTime类。例如:
DateTime now = DateTime.Now;
DateTime twoHoursLater = now + new TimeSpan(2,0,0);
DateTime twoDaysLater = now + new TimeSpan(2,0,0,0);
如果您使用的是用户提供的时间,例如文本框中的时间,则可以使用
DateTime userSuppliedTime = DateTime.Parse(myTextbox.Text);
这将为您提供与用户输入的内容相对应的DateTime。但是,请注意,如果用户键入系统无法识别为有效的内容,则会引发异常。
答案 1 :(得分:3)
DateTime.Add和DateTime.Subtract就足够了。
DateTime adjusted = DateTime.Now.Add(TimeSpan.FromMinutes(30));
答案 2 :(得分:1)
您获得当前时间,因为您没有操作该DateTime字段的代码。
要应用时区,请查看TimeZoneInfo类。
答案 3 :(得分:0)
你真的应该考虑使用DateTimeOffset结构,它适用于这种事情。