2012-05-21 37 views
4

我有一個帶有EF項目的ASP.NET MVC 4。我改變當前線程文化當我的日期時間ASP.NET MVC文化更改日期時間格式

@model System.DateTime? 
@Html.TextBox("", String.Format("{0:d}", Model.HasValue ? Model : DateTime.Today), new { @class = "datefield" }) 

<link rel="stylesheet" href="http://code.jquery.com/ui/1.8.20/themes/base/jquery-ui.css" type="text/css" media="all" /> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 
<script src="http://code.jquery.com/ui/1.8.20/jquery-ui.min.js" type="text/javascript"></script> 

<script type="text/javascript"> 
$(function() { 
    $(".datefield").datepicker({ 
     changeMonth: true, changeYear: true, firstDay: 1, changeYear: true, 
     dateFormat: 'dd.mm.yy' 
    }); 
}); 

在 Global.asax.cs中

protected void Application_BeginRequest(object sender, EventArgs e) 
    {   
     CultureInfo objculture = new CultureInfo(Helios.MvcApplication.Lang); //Lang = en-US, ro-RO, fr-FR 

     //DateTimeFormatInfo objDTFI = objculture.DateTimeFormat; 
     //objDTFI.ShortDatePattern = "dd.MM.YY"; 
     //objDTFI.DateSeparator = "."; 
     //objculture.DateTimeFormat = objDTFI; 

     objculture.NumberFormat.CurrencyDecimalSeparator = "."; 
     objculture.NumberFormat.NumberDecimalSeparator = "."; 

     Thread.CurrentThread.CurrentUICulture = objculture; 
     Thread.CurrentThread.CurrentCulture = objculture; 
    } 

DateTime.cshtml // EditorTemplate用戶登錄如果我使用:字符串.Format(「{0:yyyy-MM-dd}」String.Format(「{0:MM-dd-yyyy}」它的作品,但如果我使用String.Format(「{0:dd .MM.yyyy}「它不起作用。

問:如何將每種文化/語言的日期時間格式更改爲「dd.MM.yyyy」

+0

我不清楚你的問題是什麼。你是說你想強制輸出到某種格式(dd.MM.yyyy)而不是依賴於依賴於文化的格式嗎? – Clafou

+0

是不是你在找什麼? http://stackoverflow.com/questions/3967222/need-parse-dd-mm-yyyy-to-datetime-using-tryparse – Mariusz

+0

是的,就像我用小數點分隔符 – Misi

回答

1

老問題,但對於其他人需要到不論改變當前文化的字符串格式:

DateTime.Today.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture)