如何获取客户端日期和货币格式?

时间:2010-07-27 21:24:37

标签: c# asp.net-mvc

我想以用户选择的格式显示日期和货币金额 如何从客户端计算机中检索此内容?

或者,还有其他方法可以正确格式化日期/货币吗?

由于

2 个答案:

答案 0 :(得分:1)

浏览器公开它的语言环境:您可以使用** Thread.CurrentThread.CurrentUICulture**

检索它

详细了解此herehere

你可以用你的选择文化覆盖他们的文化(如果从菜单中选择另一种语言)

格式化日期时间,字符串读取here

注意,在页面循环中很快就会设置文化,如果将其设置为较晚,则资源文件将是之前所选文化的文件。

要在周期的早期设置文化,您可以创建一个基页(继承ViewPage){}

using System.Globalization;
using System.Threading;
using System.Web.Mvc;

namespace NerdDinner.Views
{
    public class NerdDinnerViewPage<T> : ViewPage<T> where T : class
    {
        protected override void InitializeCulture()
        {
            base.InitializeCulture();

            Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentCulture.Clone() as CultureInfo;

            if (Thread.CurrentThread.CurrentCulture != null)
            {
                Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator = ".";
                Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ".";
            }
        }
    }
}

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="NerdDinner.Views.NerdDinnerViewPage<NerdDinner.Models.DinnerFormViewModel>" %>

这是完整的示例,但我为了简单而复制了代码:example

另一种方法是使用可以找到的全局asax here

答案 1 :(得分:0)

为了为您自己选择.NET工具选择有用的默认值(例如CultureInfo),我的建议(在Web场景中)将解析HTTP用户代理字符串,如提供的示例{{3 }}。但此外,用户应该能够覆盖默认值,您应该将用户选择保存在cookie中,如果适用,还应保存用户选项。