2015-02-11 117 views
3

我有一個ASP.NET MVC應用程序。這個應用程序使用Razor作爲視圖引擎。我需要向用戶顯示日期/時間。我的挑戰是,模型上的DateTime屬性是UTC時間。我想將時間顯示爲用戶的當地時間。目前,我有以下幾點:在ASP.NET MVC Razor視圖中顯示本地日期/時間

<div> 
@if (Model.LastModifiedOnUTC.HasValue) { 
    Html.Raw(Model.LastModifiedOnUTC.ToString()); 
} 
else { 
    <span>This record has not been updated</span> 
} 
</div> 

我想要顯示的DateTime爲類似「週三,2015年2月11日在下午3點27」。但是,我不知道如何做到這一點。當我這樣做時,會打印一個空字符串。這對我沒有任何意義。

謝謝你的任何見解

+2

我認爲,這是最好的在客戶端完成,因爲本地時區被稱爲那裏。所以你需要使用JavaScript以及如何在這個問題中解釋:http://stackoverflow.com/questions/6525538/convert-utc-date-time-to-local-date-time-using-javascript – 2015-02-11 20:40:36

+0

Rick Strahl最近做了一篇關於這個話題的博客文章。其中的一篇文章談到了從瀏覽器捕獲用戶的默認時區並計算服務器端的正確時間。查看他的帖子,網址是http://weblog.west-wind.com/posts/2015/Feb/10/Back-to-Basics-UTC-and-TimeZones-in-NET-Web-Apps。向下滾動到「捕獲Web用戶的默認時區」部分 – 2015-02-12 00:43:54

回答

1

您可以根據下面的剃刀代碼

<div> 
@if (Model.LastModifiedOnUTC.HasValue) { 
Html.Raw(Model.LastModifiedOnUTC.ToLocalTime().ToString()); 
} 
else { 
<span>This record has not been updated</span> 
} 
</div> 
+9

在部署網站之後,此ToLocalTime()將UTC時間轉換爲服務器時間zome,而不是根據客戶端瀏覽器。 – ABB 2017-08-07 08:29:05

0

一種選擇是使用JavaScript。

在您查看

<time>@Model.LastModifiedOnUTC.ToString("yyyy-MM-ddTHH:mm:ssZ")<time> 

JS(我的例子使用jQuery)

$("time").each(function (elem) { 
     var utctimeval = $(this).html(); 
     var date = new Date(utctimeval); 
     $(this).html(date.toLocaleString()); 
}) 
相關問題