我想在整数上显示文化,但"n"
数字格式给我双格式输出.
这是一个小例子
int i = 10000;
Console.WriteLine(i.ToString("n", CultureInfo.CreateSpecificCulture("en-US")));
Run Code Online (Sandbox Code Playgroud)
这让我出局了 10,000.00
我希望输出为 10,000
修改字符串的解决方法不是我需要的.
有没有简单的方法来做到这一点?
我已经尝试搜索一个解决方案,该解决方案为日期值提供了正确的周数.
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
我有一个从外部来源获取的 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 对象)。一些输入:
我缺少什么?这里有更好的方法吗?提前致谢!
我有一个过滤器字段,允许按可以以不同格式输入的部分或完整日期进行搜索 - 也就是说,无论用户想要以哪种方式输入它,所以 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)
或者我完全是以错误的方式做的?
先感谢您!
我希望能够使用国家/地区名称获取国家/地区代码。截至目前,我正在这样做:
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 是“坦桑尼亚”。即使在它存在的地区中,它也没有给出国家代码。它总是返回空值。
你能否建议/启发我如何完成这项工作。
我找不到给定数字和货币将它们打印到给定文化的字符串的选项。我发现的最接近的东西是decimal.ToString("C", GIVEN_CULTURE)
,但这不会要求货币,并且会假设我正在谈论文化所了解的货币。如果我在欧洲使用美元怎么办?
例如,Javascript 在构建字符串时将请求这两个参数:
GIVEN_STRING.toLocaleString(culture, { style: 'currency', currency: currency })
Run Code Online (Sandbox Code Playgroud)
这是相关的,因为我正在开发的软件可以处理美元和 MXN(墨西哥比索)。我们的网络仪表板显示有关文化的不同符号(Chrome 示例,我认为它在跨浏览器上有所不同):
zh:
es-MX:
我正在尝试建立一个国家/地区名称字典,其中包含两个字符的国家/地区代码,但将国家/地区名称翻译为选定的语言。
我知道阿拉伯联合酋长国的国家/地区代码是AE
,但我将传递什么IStringLocalizer
来将其翻译?
我可以使用类似下面的东西吗?
var localizer = _localizer.WithCulture(new CultureInfo("fr-FR"));
var countryNameTranslated = localizer[103392].ToString();
Run Code Online (Sandbox Code Playgroud)
但我需要的是两个字符国家/地区代码及其(ISO?)编号的完整列表,因此我可以迭代所有这些代码,使用选定的区域性代码和本地化程序来翻译它们。
如何从dotnet core
Microsoft 库中获取 2 个字符代码及其数字代码的完整列表?(这可能吗?)
我一直在审查以下链接
http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo%28v=vs.71%29.aspx
但我仍然不明白如何使用 CultureInfo 类(例如“en”或“fr”....等)随机检索有效的 2 个字母的区域性值。
请帮忙。
谢谢
我有以下代码生成发票行,并包括公司使用它的优惠券的月份:
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
对象的示例,但没有找到如何以编程方式分配它.我的代码需要怎么样?
我不能使用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) cultureinfo ×10
c# ×9
.net ×1
.net-core ×1
asp.net ×1
culture ×1
currency ×1
date ×1
date-parsing ×1
datetime ×1
iso ×1
localization ×1
region ×1
translation ×1