代码之家  ›  专栏  ›  技术社区  ›  SeanX

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

  •  0
  • SeanX  · 技术社区  · 16 年前

    我想以我的用户选择的格式显示日期和货币金额。
    我如何从客户机中检索这个?

    或者,是否有其他方法可以正确设置日期/货币的格式?

    谢谢

    2 回复  |  直到 16 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    浏览器显示它的区域设置:您可以使用 ** Thread.CurrentThread.CurrentUICulture**

    了解更多有关此的信息 here here

    你可以用你所选择的文化来覆盖他们的文化(如果从菜单中选择其他语言的话)

    格式化日期时间和字符串读取 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

        2
  •  0
  •   chryss    16 年前

    为了为您可以使用的.NET工具(如CultureInfo)选择一个有用的默认值,我的建议(在Web场景中)是解析HTTP用户代理字符串,如提供的示例中所示。 here . 但是,另外,用户应该能够覆盖默认值,并且您应该将用户的选择保存在cookie中,如果适用,还应该保存用户选项。