- DateTime.ToString()不同语言环境问题
- 问题描述:PlayerPrefs.SetString("timeKey", DateTime.Now.ToString());切换系统语言后DateTime.Parse(PlayerPrefs.GetString("timeKey"));报错FormatException: String was not recognized as a valid DateTime。
- 原因:比如英语环境DateTime.Now.ToString输出结果是(7/29/2023 1:32:38 PM),在越南语(29/07/2023 1:32:38 CH)。英文PM表示下午而越南语是CH表示下午。当用英语保存格式,在越南语环境下会报异常。
- 解决方案:DateTime.Now.ToString("yy:MM:HH")指定特定输出格式。
- float或者doubule Parse转换错误
- 问题描述:比如在越南语中 float.Parse("1.23") 得到的值是123,小数点没生效。
- 原因:越南语中是用逗号(,)表示小数点(.)。
- 解决方案:一、float.Parse("1,23")主要这里是逗号。 二、float.Parse("1.23", CultureInfo.InvariantCulture) 表示转换不依赖系统语言。
- 字符串ToLower或ToUpper错误
- 问题描述:在土耳其语言中"LIKE".ToUpper(),得到值是lıke,注意这里小写并不是小写的i
- 原因:土耳其小写的i是没有上面的点ı,比较独特
- 解决方案:"LIKE".ToLowerInvariant()依赖系统语言。
资源分享