根据文化显示日期

时间:2012-08-23 13:58:25

标签: c# javascript asp.net

我想显示日期时间(我放在母版页上);在当前文化的基础上用不同的语言。

我在master上的javascript代码:

    <script type="text/javascript">
        var t;
        $(document).ready(function pageLoad() {
            setTimeout('SetTime()', 1000);
        });

        function SetTime() {
            var date = new Date();
            date.format = 'MM.DD.YYYY';
            $get('<%=lbl.ClientID %>').innerHTML = date.toLocaleDateString() + " : " + date.toLocaleTimeString();
            setTimeout("SetTime()", 1000);
        }  

    </script>

它总是以英语显示日期时间字符串,即使我设置了不同的文化:法语或其他任何文化。

我尝试了其他方式通过母版页的代码隐藏文件:

 protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    Timer1.Tick += new EventHandler<EventArgs>(Timer1_Tick);
}

void Timer1_Tick(object sender, EventArgs e)
{
    Label2.Text = DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString();
    UpdatePanel1.Update();
}

在这里,我根据所选择的文化获得不同语言的日期字符串。但我不想使用Timer。有没有办法,我可以在不使用计时器的情况下实现这一点。谢谢。

4 个答案:

答案 0 :(得分:1)

toLocaleDateString使用客户端的区域设置(通常需要重新启动浏览器才能使更改生效),并且不一定与.NET线程中使用的区域性相关。

答案 1 :(得分:0)

您可以在web.config文件中定义它,如下所示:

<globalization enableClientBasedCulture="true" culture="auto:en-GB" uiCulture="auto:en"/>

这应该启用基于客户端的格式,而如果未由客户端

定义则选择默认值

修改为您的派生结果的nessecary。

如果您只想在特定页面上设置此项,请设置Date.format = 'yyyy-mm-dd';  在你的javascript函数之外。

//此致

答案 2 :(得分:0)

尝试使用它,

function SetTime() {
    var date = new Date();
    var dateFormat = '<%=System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern%>';
    var timeFormat = '<%=System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongTimePattern%>';
     var datetimeFormat = dateFormat + " " + timeFormat;
     var cultureSpecificValue= date.toString(datetimeFormat);
    alert(cultureSpecificValue);

   //Your Code

}

我在上面的代码中使用Datejs日期时间库的“toString”函数。

答案 3 :(得分:0)

当您使用ScriptManager控制页面时,您可以使用Microsoft Ajax Date对象扩展。为此,将ScriptManager的EnableScriptGlobalization属性设置为true。然后你可以使用这个脚本:

var localDate = new Date().localeFormat("F");

有关Microsoft Ajax扩展的更多信息,请访问:Microsoft Ajax JavaScript Base Type Extensions