在winform中,我有一个字符串,其中包含一个序列号,其编号如下:
PR(这是一个前缀)+ ss mm hh dd mm yy
导致类似PR010110120914。现在这是保存记录的服务器时间。 这是我的代码,其中rawDate是来自DB的上述字符串:
string datetimeinserver = DateTime.ParseExact(rawDate.Substring(2),
"ssmmHHddMMyy",
CultureInfo.InvariantCulture)
.ToString("HH:mm:ss on dd/MM/yyy");
出于各种原因,我需要将10个小时添加到datetimeinserver,我已经搞砸了没有结果。有没有一种简单的方法可以将10小时添加到datetimeinserver?
答案 0 :(得分:3)
使用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");
答案 1 :(得分:1)
DateTime.ParseExact
会返回DateTime
个对象。然后,您可以使用DateTime.AddHours
方法,例如:
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");
答案 2 :(得分:0)
string datetimeinserver = DateTime.ParseExact(rawDate.Substring(2),"ssmmHHddMMyy", CultureInfo.InvariantCulture);
dateTimeinserver.AddHours(10).ToString("HH:mm:ss on dd/MM/yyy");