C# 服务器时间增加10小时
在winform中,我有一个表示序列号的字符串,其组成如下: PR(前缀)+ss mm hh dd mm yy 结果是PR010110120914。现在是保存记录的服务器时间。 这是我的代码,其中rawDate是数据库中的上述字符串:C# 服务器时间增加10小时,c#,datetime,C#,Datetime,在winform中,我有一个表示序列号的字符串,其组成如下: PR(前缀)+ss mm hh dd mm yy 结果是PR010110120914。现在是保存记录的服务器时间。 这是我的代码,其中rawDate是数据库中的上述字符串: string datetimeinserver = DateTime.ParseExact(rawDate.Substring(2), "ssmmHHddMMyy", CultureInfo.InvariantCul
string datetimeinserver = DateTime.ParseExact(rawDate.Substring(2),
"ssmmHHddMMyy",
CultureInfo.InvariantCulture)
.ToString("HH:mm:ss on dd/MM/yyy");
由于各种原因,我需要在datetimeinserver上增加10个小时,我已经把事情搞得一团糟,没有结果。有没有一种简单的方法可以让datetimeinserver增加10个小时 为此使用
DateTime.AddHours
。只需将代码更改为:
DateTime dt = DateTime.ParseExact(rawDate.Substring(2),
"ssmmHHddMMyy",
CultureInfo.InvariantCulture);
dt = dt.AddHours(10);
string datetimeinserver = dt.ToString("HH:mm:ss on dd/MM/yyy");
使用
DateTime.AddHours
进行此操作。只需将代码更改为:
DateTime dt = DateTime.ParseExact(rawDate.Substring(2),
"ssmmHHddMMyy",
CultureInfo.InvariantCulture);
dt = dt.AddHours(10);
string datetimeinserver = dt.ToString("HH:mm:ss on dd/MM/yyy");
?
?
DateTime。ParseExact
将返回一个DateTime
对象。然后,您可以使用如下方法:
DateTime tempDt = DateTime.ParseExact(rawDate.Substring(2),
"ssmmHHddMMyy",
CultureInfo.InvariantCulture);
tempDt = tempDt.AddHours(10);
string datetimeinserver = tempDt.ToString("HH:mm:ss on dd/MM/yyy");
您也可以在一条语句中执行相同的操作,如:
string datetimeinserver = DateTime.ParseExact(rawDate.Substring(2),
"ssmmHHddMMyy",
CultureInfo.InvariantCulture)
.AddHours(10)
.ToString("HH:mm:ss on dd/MM/yyy");
DateTime.ParseExact
将返回一个DateTime
对象。然后,您可以使用如下方法:
DateTime tempDt = DateTime.ParseExact(rawDate.Substring(2),
"ssmmHHddMMyy",
CultureInfo.InvariantCulture);
tempDt = tempDt.AddHours(10);
string datetimeinserver = tempDt.ToString("HH:mm:ss on dd/MM/yyy");
您也可以在一条语句中执行相同的操作,如:
string datetimeinserver = DateTime.ParseExact(rawDate.Substring(2),
"ssmmHHddMMyy",
CultureInfo.InvariantCulture)
.AddHours(10)
.ToString("HH:mm:ss on dd/MM/yyy");
string datetimeinserver=DateTime.ParseExact
。。真的吗?如果这10个小时与时区有任何关系,你应该说清楚。如果你在处理时区问题,你真的应该弄清楚你要做什么样的调整。更糟糕的是,提供的示例值实际上没有使用代码中提供的格式进行解析。它在某个地方丢失了一段。@Damien_,不相信我的人,我正在修改一个现有的代码,并试图最小化更改。它处理的是时区,但我对数据库中的现有字符串无能为力,因此我看到的简单方法是为旧记录添加小时数,并在UTC时间重新保存所有记录。从那里我将使用UTC时间,不管服务器位置如何,至少我有一个唯一的引用。@MichaelPerrenoud您是对的,对不起。我把它整理好了。string datetimeinserver=DateTime.ParseExact
。。真的吗?如果这10个小时与时区有任何关系,你应该说清楚。如果你在处理时区问题,你真的应该弄清楚你要做什么样的调整。更糟糕的是,提供的示例值实际上没有使用代码中提供的格式进行解析。它在某个地方丢失了一段。@Damien_,不相信我的人,我正在修改一个现有的代码,并试图最小化更改。它处理的是时区,但我对数据库中的现有字符串无能为力,因此我看到的简单方法是为旧记录添加小时数,并在UTC时间重新保存所有记录。从那里我将使用UTC时间,不管服务器位置如何,至少我有一个唯一的引用。@MichaelPerrenoud您是对的,对不起。我把它整理好了。