2016-07-25 71 views
0

我正在开发Windows窗体应用程序,并必须显示日期时间线图与实时数据为每一秒钟。时间跨度到日期时间转换格式问题显示日期时间图表

我必须以(days:hours:min:sec)的格式在x轴上显示时间。时间应该是00:00:00:00,00:00:00:01,00:00:00:02等。

我将第一个响应时间(系统时间)作为参考时间date1。再次1秒后,发送请求,获得响应,捕获系统时间为date2,并继续这样做。我通过减去date2和date1得到响应时间跨度。

但是对于日期时间图表,x轴只接受日期时间类型变量,必须使用ToOADate()将其转换为double。

问题:虽然转换时间跨度00:00:06.2867597到日期时间变量被转换为2016年7月25日上午12点00分06秒。但我需要的格式为00:00:06 而不是12:00:06 AM

然后只使用ToOADate(),我会得到正确的double值。 请解决我的问题。

这里是我的代码:

DateTime date1 = DateTime.Now; // {7/25/2016 8:13:29 PM} 

DateTime date2 = DateTime.Now; // {7/25/2016 8:13:30 PM} 

TimeSpan time = date2 .Subtract(date1); // {00:00:01.3922821} 

DateTime logTime = Convert.ToDateTime(time.ToString()); // {7/25/2016 12:00:01 AM} 

但我需要logTime Description该条值应该是 “00:00:01”。

+1

DateTime不保持显示格式。只有它是字符串表示。使用接受格式提供者的ToString重载来显示DateTime值。 –

+1

你确定你不需要time.ToString()吗?它看起来像你想要显示一次到另一次的偏移量,而不是将它转换回DateTime。 –

+0

为什么把它放在DateTime中? –

回答

0

当您使用DateTime时,它会自动显示为系统日期时间格式。你必须把它作为字符串愿望输出这样

string logTime = Convert.ToDateTime(time.ToString()).ToString("MM/dd/yyyy HH:mm:ss"); 
如果你想

只有部分时间则

string logTime = Convert.ToDateTime(time.ToString()).ToString("HH:mm:ss"); 
+0

ToOADate()将DaeTime值转换为double。所以我不想要字符串格式。 –

+0

但是如果没有将其转换为字符串,您无法获得特定的格式,DateTime没有任何将显示为系统格式的格式,更改系统格式,那么您将在此处更改为 – Mostafiz

0

要显示logTime作为一个24小时的字符串:

logTime.ToString("HH:mm:ss"); 

您无法将logTime DateTime值本身更改为表示00:00:01,因为它们具有相同的值,您只需更改显示方式即可。