C#中的CultureInfo类

CultureInfo类位于System.Globalization命名空间内,这个类和命名空间许多人都不是很熟悉,实际我们在写程序写都经常间接性的接触这个类,当进行数字,日期时间,字符串匹配时,都会进行CultureInfo的操作,也就是说,也就是不同的CultureInfo下,这些操作的结果可能会不一样,由于我们大部分开发部署都是在同一种语言环境中,平日里可能没有感觉到它的用处,如果你的开发的项目是给国外用户用的,有可能在你机器上运行输出是一种效果,在客户机器上是另一种输出效果,这句需要用到CultureInfo类了,对使用用户来说,这也是ms提供的人性化的一面(比方说,同样是日期,中文环境输出符合中国人的习惯,德语环境中的输出符合德国人的习惯,这是默认的输出方式),但对开发人员和服务数据中心来说,就要选择是保证统一的输出,还是用ms的默认方式了。
code如下:

 1    static readonly string[] CultureSources = { "en-us", "zh-cn", "ar-iq", "de-de" };
 2         static readonly Random Ran = new Random(Environment.TickCount);
 3 
 4 
 5         static void Main()
 6         {
 7             for (int i = 0; i < CultureSources.Length; i++){
 8                 ThreadPool.QueueUserWorkItem(Client, i);
 9 }
10             Console.ReadLine();
11         }
12 
13 
14         static void Client(object obj)
15         {
16             int id = (int)obj;
17             Thread.Sleep(Ran.Next(1000));
18             CultureInfo culture = CultureInfo.GetCultureInfo(CultureSources[id]);            
19             Thread.CurrentThread.CurrentCulture = culture;
20             Console.WriteLine("操作系统语言设置成{0}\n数据输出是:{1}\n", culture.DisplayName, DateTime.Now.ToShortDateString());
21         }

运行结果如下:

结果看到了吧,同样的DateTime.Now.ToShortDateString(),在英语-美国,中文-中国,阿拉伯语-伊拉克和德语-德国的不同环境下,日期输出格式竟然有如此不同的输出结果,这样对使用的用户来说是很友好的,单对编程人员来说,如果对这些数据要处理,就要考虑不同的语言环境中,该怎么处理了,同时,这些数据让数据中心服务器情何以堪啊……
原因分析:
.NET会考虑当前线程的CultureInfo,即Thread.CurrentThread.CurrentCulture(或者CultureInfo.CurrentCulture),并根据CultureInfo,进行相应地区文化的数据处理,要解决这个问题,这样设置
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;//和new CultureInfo("");一样,使用固定区域性,固定区域性不区分区域性;它与英语语言关联,但不与任何国家/地区关联
这样不管客户端运行在什么语言环境下,输出的时间格式都是统一的,方便数据中心服务器对数据做后续处理。

结果如下图:

支持多种CultureInfo是整个.NET Framework更加人性化,因为这可以使同一个数据适应不同地区和文化,这样当然满足处于不同地区和文化的用户,但前提是数据给“人”看,如果这些数据用于计算机之间的传输,即给“机器”看,这样的多文化处理反而不妥,造成同一个数据的不同展现形式,尤其是读写两方的文化地区不同时,数据可能根本无法被正常读取或者产生潜在bug,因此这里,正是InvariantCulture的用武之地。

转载自:https://blog.csdn.net/xuwei_xuwei/article/details/32717259

转载于:https://www.cnblogs.com/LagoOrLY/p/10313193.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

clistctrl控件最后插入在后面_老板让我把图片放到Excel表格中,批量插入效率高...

私信回复关键词【福利】&#xff0c;获取丰富办公资源&#xff01;助你高效办公早下班&#xff01;大家好&#xff0c;我是懂点 Excel 的小E~初入「江湖」&#xff0c;还请大家多多关照&#xff01;今天我们来学学 Excel 图片的 6 个小技巧&#xff0c;满满都是干货&#xff0c…

python天气预报的功能介绍_python实现智能语音天气预报

本系统主要包括四个函数&#xff1a; 1、获取天气数据 1、输入要查询天气的城市 2、利用urllib模块向中华万年历天气api接口请求天气数据 3、利用gzip解压获取到的数据&#xff0c;并编码utf-8 4、利用json转化成python识别的数据&#xff0c;返回为天气预报数据复杂形式的字典…

部署环境_Hyperledger Fabric Composer环境部署(一)

声明&#xff1a;本体系Hyperledger Fabric Composer相关分享都是基于MacPro进行多次亲测和体验。今天我这里主要介绍的是这些先决条件安装完成后&#xff0c;如何搭建和使用一个基础环境的问题&#xff0c;适合有一定基础的同学一起交流&#xff0c;也欢迎随时留言交流&#x…

输入参数的数目不足_sklearn.decomposition.PCA 参数速查手册

sklearn常用的API参数解析&#xff1a;sklearn.linear_model.LinearRegression调用sklearn.decomposition.PCA(n_componentsNone, copyTrue, whitenFalse, svd_solverauto, tol0.0, iterated_powerauto, random_stateNone)参数n_components释义PCA 算法中所要保留的主成分个数 …

了解位图

几周前&#xff0c;我和Alistair一起研究了用于对Neo4j数据库中节点已附加到其上的标签进行建模的代码。 这种工作方式是将32个节点ID的块表示为每个标签的32位位图 &#xff0c;其中位1表示节点具有标签&#xff0c;而0表示没有标签。 例如&#xff0c;假设我们有节点ID 0-3…

各种说明方法的答题格式_语文万能答题公式,给孩子收藏吧!

1、某句话在文中的作用1、文首&#xff1a;开篇点题&#xff1b;渲染气氛(散文)&#xff0c;埋下伏笔(记叙类文章)&#xff0c;设置悬念(小说)&#xff0c;为下文作辅垫&#xff1b;总领下文&#xff1b;2、文中&#xff1a;承上启下&#xff1b;总领下文&#xff1b;总结上文&…

pr文字转语音有插件吗_文字转语音软件深度解析

网络时代的迅猛发展&#xff0c;丰富了我们的眼见&#xff0c;便利了我们的生活&#xff0c;升华了我们的素养。那你知道近年来配音行业的迅速崛起吗&#xff1f;视频配音&#xff0c;广告配音&#xff0c;小视频配音等等&#xff0c;其实配音处处都陪伴在我们身边&#xff0c;…

装饰图案

装饰图案 我不经常使用的一种设计模式是Decorator 。 我不确定为什么这种模式不受欢迎&#xff0c;因为它很方便。 装饰器模式允许以受控方式向对象添加功能。 即使在使用静态类型的语言时&#xff0c;也可以在运行时运行&#xff01; 装饰器模式是子类的替代方法。 子类化在编…

Neural Networks

神经网络能够使用torch.nn包构建神经网络。 现在你已经对autogard有了初步的了解&#xff0c;nn基于autograd来定义模型并进行微分。一个nn.Module包含层&#xff0c;和一个forward(input)方法并返回output。 以如下分类数字图片的网络所示&#xff1a; 这是一个简单的前馈网络…

文件服务器磁盘配额管理,Windows2008 (FSRM)文件服务器资源管理器网站文件夹磁盘配额管理...

在windows server里提供了一个功能强大的管理工具&#xff0c;就是文件服务器资源管理器。简称FSRM(File Server Resource Manager)通过此工具&#xff0c;可能对网站进去配额以及相关服务。我们通过使用FSRM&#xff0c;可以为文件夹和卷设置配额&#xff0c;主动屏蔽文件&…

SpringBoot项目中,获取配置文件信息

1.在配置文件中设置信息&#xff0c;格式如下 wechat:mpAppId: wxdf2b09f280e6e6e2mpAppSecret: f924b2e9f140ac98f9cb5317a8951c71 如果是多级目录&#xff0c;则 project:url:sell: http://localhost:8080 2.获取配置文件信息&#xff08;三种方法&#xff09; 2.1Configurat…

oppo 手机侧滑快捷菜单_OPPO刚秀出卷轴屏手机,就被打了一记响亮的“耳光”

在刚刚过去的未来科技大会上&#xff0c;我国国产手机厂商 oppo可谓是出尽了风头&#xff0c;因为他们推出一款名叫“OPPO X 2021”的卷轴屏概念手机&#xff0c;并且展出了可操作的概念机实物&#xff0c;着实让所有人都惊艳了一把。因此我国的一些自媒体又嗨了&#xff0c;用…

UVA1602 Lattice Animals 搜索+剪枝

题目大意 给出一个$w\times h$的网格&#xff0c;定义一个连通块为一个元素个数为$n$的方格的集合$A,\forall x\in A, \exists y\in A$&#xff0c;使得$x,y$有一条公共边。现要求一个元素个数极多的连通块的集合$K_N$&#xff0c;使得$\forall A,B\in K_n$&#xff0c;不存在一…

python怎么打开程序管理器_Python 进程管理工具 Supervisor 使用教程

因为我的个人网站 restran.net 已经启用&#xff0c;博客园的内容已经不再更新。请访问我的个人网站获取这篇文章的最新内容&#xff0c;Python 进程管理工具 Supervisor 使用教程 Supervisor 是基于 Python 的进程管理工具&#xff0c;只能运行在 Unix-Like 的系统上&#xff…

ft服务器设置传输协议,ft服务器设置成主动模式

ft服务器设置成主动模式 内容精选换一换如果您选择使用SFS Turbo实现文件共享存储&#xff0c;此章节操作可跳过&#xff0c;您可以参见《SAP HANA用户指南》中的“格式化磁盘”章节&#xff0c;挂载Backup卷。NFS Server磁盘需要格式化&#xff0c;并挂载到相应的目录后&#…

mysql text字段导出_Mysql数据库的各种命令:

一、连接MYSQL格式&#xff1a; mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MYSQL。 首先打开DOS窗口&#xff0c;然后进入目录mysqlbin&#xff0c;再键入命令mysql -u root -p&#xff0c;回车后提示你输密码. 注意用户名前可以有空格也可以没有空格&#xff0c;…

运行,JUnit! 跑!!!

JUnit与JavaScript和SVN一起是程序员经常开始使用的一些技术&#xff0c;甚至没有读过一篇博客文章&#xff0c;更不用说一本书了。 也许这是一件好事&#xff0c;因为它们看起来足够简单且易于理解&#xff0c;因此我们无需任何手册即可立即使用它们&#xff0c;但这也意味着它…

css3图形绘制

以下几个例子主要是运用了css3中border、bordr-radius、transform、伪元素等属性来完成的&#xff0c;我们先了解下它们的基本原理。 border&#xff1a;简单的来说border语法主要包含&#xff08;border-width、border-style、border-color&#xff09;三个属性。 „ border-t…

vueh5调用摄像头拍照_潜望式拍照5G手机盘点:售价相差数千元 究竟怎么选?

【dogkeji-科技犬】最近很多网友询问科技犬&#xff0c;目前支持50X潜望式长焦手机都有哪些&#xff0c;可否进行相关手机的推荐&#xff0c;今天就应大家的需求来盘点一下&#xff0c;给各位网友一些参考。推荐一&#xff0c;三星 Galaxy S20 U三星Galaxy S20 5G系列不仅搭载了…

09 事件对象

上篇介绍完我们js的事件流的概念之后&#xff0c;相信大家对事件流也有所了解了。那么接下来我们看一下jquery的事件操作。 在说jquery的每个事件之前&#xff0c;我们先来看一下事件对象 事件对象 Event 对象代表事件的状态&#xff0c;比如事件在其中发生的元素、键盘按键的状…