2012-10-24 59 views
0

我有点迷惑约我已经定义转换TimeSpan.TotalMilliseconds到datetime和格式化为小时:分钟

public DateTime? Sent { get; set; } 
    public DateTime? Reply { get; set; } 
    public double ResponseTime { get; set; } 
在LINQ部分

在我的模型日期时间转换

我使用

ResponseTime = (u.Reply - u.sent).TotalMilliseconds 

这是没有形成和显示像这样979809803

我想知道如何将其转换为日期时间格式,并且最终将显示格式为小时:分钟,例如发送日期和日期回复之间的时间为2:45。

回答

1

从DateTime中减去DateTime会生成TimeSpan。看看TimeSpan.ToString Method (String),看看如何自定义格式化值。

您可以将ResponseTime更改回TimeSpan并从那里更改为字符串。

TimeSpan ResponseTimeSpan = new TimeSpan(0, 0, 0, (int)ResponseTime); 

string ResponseTimeDisplay = ResponseTimeSpan.ToString(); 
+0

我很抱歉,但RESPONSETIME数据类型将翻一番,所以既然是没有时间跨度,我怎么改回日期时间?对不起,如果我迷惑你! –

+0

您无法将其更改为DateTime,但可以将其更改为TimeSpan。 – JamieSee

+0

好吧,我可以最初设置数据类型时间跨度的响应时间会更好吗? –

3

只需返回TimeSpan并致电.ToString("hh:mm")

TimeSpan.ToString

public TimeSpan ResponseTime { get; set; } 

//usage in LINQ 
ResponseTime = (u.Reply - u.Sent) 

显示当...

value.ResponseTime.ToString("hh:mm") 
+0

我只是测试它,它不会工作,或者我错过了一些重要的东西吗? –

+0

@ cool_spirit:我没有办法回答,没有一些代码看... –

+0

看到更新,请thx –

相关问题