标签: cultureinfo

C# - 在数字上显示文化

我想在整数上显示文化,但"n"数字格式给我双格式输出.

这是一个小例子

int i = 10000;
Console.WriteLine(i.ToString("n", CultureInfo.CreateSpecificCulture("en-US")));
Run Code Online (Sandbox Code Playgroud)

这让我出局了 10,000.00

我希望输出为 10,000

修改字符串的解决方法不是我需要的.

有没有简单的方法来做到这一点?

c# cultureinfo number-formatting

0
推荐指数
1
解决办法
1534
查看次数

获取给定日期的周数c#

我已经尝试搜索一个解决方案,该解决方案为日期值提供了正确的周数.
link1,link2,link3
按照上述链接中的方法,但是对于2014年12月30日的日期,我将周数作为53.但它是2015年的第1周.
我尝试了以下方法来获取特定日期的年份周数.

private int GetWeekNumberOfTheYear() {
var currentCulture = CultureInfo.CurrentCulture;
// option 1 
var weekNo = currentCulture.Calendar.GetWeekOfYear(DateTime.Now,currentCulture.DateTimeFormat.CalendarWeekRule, currentCulture.DateTimeFormat.FirstDayOfWeek);
// option 2 
var weekNo = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
return weekNo; }
Run Code Online (Sandbox Code Playgroud)

上面的方法是否正确,以53号作为周数返回,或者它应该是1?
上面的代码中是否有任何错误.建议请.编辑:

发现许多搜索指定,2014年12月29日至2015年1月4日为2015年第1周.
所以我的困惑是本周必须被视为第53周或第1周.

http://week-number.net/calendar-with-week-numbers-2014.html
http://www.epochconverter.com/date-and-time/weeknumbers-by-year.php

c# asp.net date cultureinfo

0
推荐指数
1
解决办法
7388
查看次数

System.Globalization.RegionInfo 有效区域性输入的完整列表

我有一个从外部来源获取的 ISO 3166 两个字母国家/地区代码列表。对于每个,我创建

     new System.Globalization.RegionInfo(countryCode) 
Run Code Online (Sandbox Code Playgroud)

有时,其中一个无效,导致出现 ArgumentException“不支持区域性名称 'xx'”。

我想要一个函数来确定国家/地区代码在将其传递给构造函数之前是否有效。这是我的尝试:

    private bool IsCultureValid(string cultureName)
    {
        return CultureInfo.GetCultures(CultureTypes.AllCultures)
            .Any(c => c.Name.Equals(cultureName, StringComparison.InvariantCultureIgnoreCase));
    }
Run Code Online (Sandbox Code Playgroud)

该函数对许多输入返回假阴性(函数返回 false,但如果我尝试,我可以使用该输入创建一个 RegionInfo 对象)。一些输入:

  • zw(津巴布韦)
  • 澳大利亚(澳大利亚)
  • MX(墨西哥)
  • ve(委内瑞拉玻利瓦尔共和国)
  • hn(洪都拉斯)
  • 千瓦(科威特)

我缺少什么?这里有更好的方法吗?提前致谢!

c# iso cultureinfo region

0
推荐指数
1
解决办法
8342
查看次数

DateTime.TryParse 仅在 yyyy 失败

我有一个过滤器字段,允许按可以以不同格式输入的部分或完整日期进行搜索 - 也就是说,无论用户想要以哪种方式输入它,所以 TryParseExact 看起来不是最佳选择。

问题在于下面的代码:

DateTime.TryParse(fromDate.Text, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateFromValue)
Run Code Online (Sandbox Code Playgroud)

解析除 yyyy 字符串之外的所有内容。例如,“05/1980”和“1980/05”被识别为 {1/05/1980 12:00:00 AM},但“1980”则失败。

我怀疑解析器无法区分 yyyy 和 ffff 当它得到的只是 4 位序列时,但我仍然需要让它工作。也许有比这更优雅的方法吗

if(!DateTime.TryParse("1980", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
    DateTime.TryParseExact("1980","yyyy",CultureInfo.InvariantCulture, DateTimeStyles.None, out date);
Run Code Online (Sandbox Code Playgroud)

或者我完全是以错误的方式做的?

先感谢您!

c# datetime cultureinfo date-parsing

0
推荐指数
1
解决办法
1182
查看次数

如何使用国家/地区名称获取国家/地区代码

我希望能够使用国家/地区名称获取国家/地区代码。截至目前,我正在这样做:

var regions = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
                         .Select(x => new RegionInfo(x.LCID));

var selectedRegion = regions.FirstOrDefault(region => 
                                                region.EnglishName.Contains(countryName));
Run Code Online (Sandbox Code Playgroud)

在我的例子中,CountryName 是“坦桑尼亚”。即使在它存在的地区中,它也没有给出国家代码。它总是返回空值。

你能否建议/启发我如何完成这项工作。

.net c# cultureinfo

0
推荐指数
1
解决办法
191
查看次数

为什么 C# 十进制 ToString 不请求文化和货币?

我找不到给定数字和货币将它们打印到给定文化的字符串的选项。我发现的最接近的东西是decimal.ToString("C", GIVEN_CULTURE),但这不会要求货币,并且会假设我正在谈论文化所了解的货币。如果我在欧洲使用美元怎么办?

例如,Javascript 在构建字符串时将请求这两个参数:

GIVEN_STRING.toLocaleString(culture, { style: 'currency', currency: currency })
Run Code Online (Sandbox Code Playgroud)

这是相关的,因为我正在开发的软件可以处理美元和 MXN(墨西哥比索)。我们的网络仪表板显示有关文化的不同符号(Chrome 示例,我认为它在跨浏览器上有所不同):

zh:

  • 美元有符号“$”
  • MXN 的符号为“MX$”

es-MX:

  • 美元有符号“US$”
  • MXN 有符号“$”

c# culture currency cultureinfo

0
推荐指数
1
解决办法
1066
查看次数

如何获取 dotnet 中所有国家/地区名称的翻译列表

我正在尝试建立一个国家/地区名称字典,其中包含两个字符的国家/地区代码,但将国家/地区名称翻译为选定的语言。

我知道阿拉伯联合酋长国的国家/地区代码是AE,但我将传递什么IStringLocalizer来将其翻译?

我可以使用类似下面的东西吗?

var localizer = _localizer.WithCulture(new CultureInfo("fr-FR"));
var countryNameTranslated = localizer[103392].ToString();
Run Code Online (Sandbox Code Playgroud)

但我需要的是两个字符国家/地区代码及其(ISO?)编号的完整列表,因此我可以迭代所有这些代码,使用选定的区域性代码和本地化程序来翻译它们。

如何从dotnet coreMicrosoft 库中获取 2 个字符代码及其数字代码的完整列表?(这可能吗?)

translation localization cultureinfo .net-core

0
推荐指数
1
解决办法
1940
查看次数

在 C# 中使用 CultureInfo 对象的随机值

我一直在审查以下链接

http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo%28v=vs.71%29.aspx

但我仍然不明白如何使用 CultureInfo 类(例如“en”或“fr”....等)随机检索有效的 2 个字母的区域性值。

请帮忙。

谢谢

c# cultureinfo

-1
推荐指数
1
解决办法
451
查看次数

根据语言ID获取文化信息

我有以下代码生成发票行,并包括公司使用它的优惠券的月份:

invoice.InvoiceLine += CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(month.Month) + " (" + usedThisMonth + "), ";
Run Code Online (Sandbox Code Playgroud)

我的问题是公司有一种公司语言(在数据库中它保存在值1或2下).

1表示荷兰语,2表示法语.

如何编辑我的行以让月份出现在相应的语言中?

我想我需要从:

if(invoice.CompanyLanguage == 1)
{
  invoice.InvoiceLine += CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(month.Month) + " (" + usedThisMonth + "), ";
}
else
{
    invoice.InvoiceLine += CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(month.Month) + " (" + usedThisMonth + "), ";
}
Run Code Online (Sandbox Code Playgroud)

我只找到了创建新CultureInfo对象的示例,但没有找到如何以编程方式分配它.我的代码需要怎么样?

c# cultureinfo

-1
推荐指数
1
解决办法
81
查看次数

C#CultureInfo.GetCultures返回一个空列表

我不能使用GetCultures,从我可以告诉它返回一个空白列表.

private void AddressChooser_Load(object sender, EventArgs e)
    {
        MessageBox.Show("Form load event successfully triggered") //Debug message - This appears at runtime
        foreach (string country in GetCountryList())
        {
            MessageBox.Show(country); //Debug message - This does not appear at runtime!!
            countryBox.Items.Clear();
            countryBox.Items.Add(country);
        }
    }

    public static List<string> GetCountryList()
    {
        MessageBox.Show("Function has been triggered successfully"); //Debug message - This appears at runtime
        List<string> cultureList = new List<string>();
        CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures);
        foreach (CultureInfo culture in cultures)
        {
            RegionInfo region = new RegionInfo(culture.LCID);
            if …
Run Code Online (Sandbox Code Playgroud)

c# cultureinfo

-2
推荐指数
1
解决办法
1106
查看次数