0

我在一个模拟应用程序上,需要为每条记录附加不同的时间。我将日期和时间存储在单独的字符串中:

string pdate = DateTime.Now.ToShortDateString();  
string ptime = DateTime.Now.ToShortTimeString();

现在我正在尝试向 ptime 变量添加 5 分钟(这是我在 foreach 循环中所做的)。

foreach (loaddata dl2 in lstdata)
{
  //some code
  ptime = DateTime.Now.AddMinutes(5); 
  //Results in ptime with date and time(I only need the time here)
}

更新:我需要在每次迭代中将前一次时间增加 5 分钟

请提出建议。

4

4 回答 4

3

这样做

ptime = DateTime.Parse(ptime, "your string format", CultureInfo.InvariantCulture)
                .AddMinutes(5).ToShortDateString();

你的代码有问题

仅将 DateTime 存储在 DateTime 中,这样您就可以在那里“增加”它们本身。从 DateTime 转换为字符串很容易并且几乎没有错误。但是从字符串到日期时间的转换有时会导致异常。

最好是这样做

DateTime ptime = DateTime.Now;

// After some coding

ptime = ptime.AddMinutes(5);

当您知道不需要 DateTime 格式(如在 UI 中显示)时,应转换为字符串。

于 2012-09-15T10:57:56.600 回答
2

当您可以将其存储在字符串中时,为什么要将其存储在字符串中DateTimeDateTime用于存储日期,并提供了许多处理日期的方法。

如果您确实需要该字符串,请在之后操作DateTime并调用ToShortDateString()

于 2012-09-15T10:57:50.453 回答
1

使用DateTime对象:

DateTime current = DateTime.Now;

foreach (loaddata dl2 in lstdata)
{

   //some code
   current = DateTime.Now.AddMinutes(5); 

   string pdate = current.ToShortDateString();  
   string ptime = current.ToShortTimeString();
   // do something with pdate and ptime

   //Results in ptime with date and time(I only need the time here)
}
于 2012-09-15T10:59:02.547 回答
0

这不行吗?

ptime = DateTime.Now.AddMinutes(5).ToShortTimeString();
于 2012-09-15T10:57:35.397 回答