我有一个字符串,其中包含一个时间戳(yyyy-mm-dd hh:mm:ss).我可以CultureInfo根据我得到的其他信息创建一个对象.因此,我知道时间戳所在的国家/地区.时间戳不是UTC/GMT.
假设时间戳来自Indonesia (new CultureInfo("id-ID")),意味着该字符串是由下面的代码或类似代码创建的.
DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
Run Code Online (Sandbox Code Playgroud)
这意味着该字符串包含印度尼西亚当地时间.我知道我的时区,但我不知道如何将印度尼西亚时间转换为UTC/GMT,所以我可以使用UTC/GMT对象TimeZoneInfo.我自己的时区可能在同一时区,也可能不在同一时区.
有没有,这个信息是连接的?
CultureInfo 有很多属性,肯定有些属性可以用来获得时区,somwhere?
我可能会补充一点,我发现整个系统非常混乱,所以我觉得我认为事情是如何运作的.
我们有一个应用程序解析日期/时间值,格式如下:
2009-10-10 09:19:12.124
2009-10-10 12:13:14.852
2009-10-10 13:00:00
2009-10-10 15:23:32.022
Run Code Online (Sandbox Code Playgroud)
一个特定的服务器突然(今天)开始无法在13:00:00或更晚的时间解析.这个特定的客户端有五个服务器,只有一个有问题.我们有数十个其他客户端,总共有数百台服务器没有问题.
System.FormatException: String was not recognized as a valid DateTime.
at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
at System.DateTime.Parse(String s, IFormatProvider provider)
at System.Convert.ToDateTime(String value, IFormatProvider provider)
at System.String.System.IConvertible.ToDateTime(IFormatProvider provider)
at System.Convert.ToDateTime(Object value)
Run Code Online (Sandbox Code Playgroud)
我跑使用DateTime.Parse(S,CultureInfo.CurrentCulture)comapred到DateTime.Parse(S,CultureInfo.InvariantCulture),问题只显示了一个的CurrentCulture测试.但是,CurrentCulture就像所有其他服务器一样是"en-US",在区域或语言设置中没有什么不同.
谁看过这个吗?有关我可以研究的建议?
编辑:谢谢你到目前为止的答案.但是,我正在寻找有关可能导致这种情况突然改变行为并在其工作多年并在数百个其他服务器上工作时停止工作的配置的建议.我已经为下一个版本更改了它,但是我正在寻找配置更改以在当前安装的临时期间修复此问题.
我在ASP.NET中开发了一个多语言站点,它可以检测用户的系统文化,并以适当的语言显示内容.
这一切都运作良好,但我的客户已经有一个SEO审计.SEO机构表示担心这不是一个好的SEO实践,因为每种语言都没有唯一的URL.
他们建议该网站可能被指控隐藏,并且谷歌可能无法为每种不同的语言正确索引网站.
关于这些是否是有效问题的任何想法,以及是否有为网站的每个语言版本提供唯一URL的优势?
这可能是一个简单的问题,我敢肯定有办法做到这一点的string.format(),NumberFormatInfo,CultureInfo或它们的组合,但我需要3个尾随小数显示大数值,小数,而不是为成千上万的一个逗号分隔符,然后是数百万分隔符和以上的逗号.
输入是整数或数字后跟最多三位小数(20000,123.456,12.2)
例如:
142650应显示为142,650.000
11200.50应显示为11,200.500
123.456应保持123.456
我认为这与将值除以1000然后使用相同string.format("{0:f3}", value),但我希望找到一些不采用算术的东西.
String.Format("{0:#,#.000}", value) 让我接近,但它在小数字上排名0,所以1.256显示为01.256,当我需要它只保持1.256
我遇到了一个问题,可能是由于我对DateTime.ToShortTimeString()方法如何工作的误解.使用此函数格式化时间字符串时,我假设它将遵循Windows 7格式设置中的"短时间"设置
Control Panel -> Clock, Language and Region -> Region and Language -> Formats Tab.
然而,.NET似乎选择了一种不基于此设置的短时间格式,而是基于当前的文化:
Region and Language -> Location -> Current Location
我在Windows 7 RC上做了一些测试:
Culture: en-GB, 6AM: 06:00, 6PM: 18:00 // HH:mm (United Kingdom) Culture: en-GB, 6AM: 06:00, 6PM: 18:00 // hh:mm (United Kingdom) Culture: en-US, 6AM: 6:00 AM, 6PM: 6:00 PM // HH:mm (United States) Culture: en-US, 6AM: 6:00 AM, 6PM: 6:00 PM // hh:mm (United States) Culture: el-GR, 6AM: 6:00 ??, 6PM: 6:00 ?? …
有没有办法根据不同的文化使用.NET框架找到构成周末或工作周的日子?例如,一些穆斯林国家从周日到周四有一个工作周.
另一个简单问题.我有不同语言的网站.如果我想从资源文件中访问一个字符串,我会像这样使用它
Resources.MyResourceFile.MyStringIdentifier
Run Code Online (Sandbox Code Playgroud)
很容易.这样我在编译期间就知道资源字符串存在.
现在,只有当我想使用当前的文化时,这才有效.有时我需要指定一种特定的文化(假设当前用户使用德语作为语言,但他的操作会触发将消息发送给其他用户,这些用户将使用收件人的语言).现在,我看到两个选择:
Resources.MyResourceFile.ResourceManager.GetString("MyStringIdentifier", neededCulturInfo)
Run Code Online (Sandbox Code Playgroud)
另一个是改变当前线程的文化信息,我需要做几次.
还有第三种方式吗?在编译时告诉我资源存在但不需要一直改变线程文化的东西?
asp.net resources cultureinfo internationalization currentuiculture
有没有人建议在JavaScript中编写文化敏感的ParseFloat函数,这样当我有一个美国文化格式的字符串100,000.22时,解析浮点函数返回100000.22而如果我在瑞典文化中输入100.000,22则返回100000.22浮点数?
我正在开发一个.net 4.5应用程序,需要多语言支持多文化等.
以下是国家/语言的示例列表
对于上述所有内容,可以根据上述文化名称创建CultureInfo对象
当用户进入站点时,我将Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture设置为使用上述名称创建的文化,例如.
Thread.CurrentThread.CurrentCulture = new CultureInfo("nl-BE", false)
Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-BE", false)
Run Code Online (Sandbox Code Playgroud)
以上所有名称均为有效的文化名称.
不,但我需要在俄罗斯添加另一种文化名称,英语.但问题是代码en-RU无效,所以当我创建时,new CultureInfo("en-RU", false)我得到一个CultureNotFoundException,因为en-RU无效.
有了这种文化,我希望俄罗斯的格式等数字,日期等,但我希望网站上的语言是英语.是否可以使用国家/地区(俄罗斯)的行为为无效的文化名称创建自定义CultureInfo对象?
CultureInfo.CurrentCulture能否为空?
null值会导致我的程序崩溃,这是我不想要的.所以我要问,为了安全,我需要做什么?
var culture = CultureInfo.CurrentCulture ?? CultureInfo.InvariantCulture
Run Code Online (Sandbox Code Playgroud) cultureinfo ×10
.net ×5
c# ×4
datetime ×3
asp.net ×2
culture ×1
formatting ×1
javascript ×1
multilingual ×1
resources ×1
seo ×1
time ×1
timezone ×1