我正在尝试使用与默认.Net文化(SFr.)不同的符号(CHF)来格式化货币(Swiss Frank - de-CH).问题是文化的NumberFormat是ReadOnly.
有没有一种简单的方法可以使用CultureInfo和NumberFormat来解决这个问题?有什么方法可以覆盖CurrencySymbol吗?
例:
Dim newCInfo As CultureInfo = CultureInfo.GetCultureInfo(2055)
newCInfo.NumberFormat.CurrencySymbol = "CHF"
MyCurrencyText.Text = x.ToString("c",newCInfo)
Run Code Online (Sandbox Code Playgroud)
设置NumberFormat.CurrencySymbol因为这NumberFormat是错误**ReadOnly**.
谢谢!
我正在使用Visual Studio 2012 Ultimate版本.
我有这个错误,我不知道如何解决它.
文化不受支持.参数名称:name en-UK是无效的区域性标识符.
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.Globalization.CultureNotFoundException:不支持Culture.参数名称:name en-UK是无效的区域性标识符.
请帮我
根据MSDN on DateTime.ToString ToString("s")应始终以可排序的XML Schema样式格式的格式返回字符串,例如:2008-10-01T17:04:32.0000000
在Reflector中,我在DateTimeFormatInfo中找到了这个模式.
public string SortableDateTimePattern
{
get
{
return "yyyy'-'MM'-'dd'T'HH':'mm':'ss";
}
}
Run Code Online (Sandbox Code Playgroud)
DateTime.ToString("s")是否始终返回此格式的字符串?
无论文化,地区,......
是的,它
代码测试
var dateTime = DateTime.Now;
var originialString = dateTime.ToString("s");
string testString;
foreach (var c in System.Globalization.CultureInfo.GetCultures(CultureTypes.AllCultures))
{
Thread.CurrentThread.CurrentUICulture = c;
if (c.IsNeutralCulture == false)
{
Thread.CurrentThread.CurrentCulture = c;
}
testString = dateTime.ToString("s");
Console.WriteLine("{0} ", testString);
if (originialString != testString)
{
throw new ApplicationException(string.Format("ToString(s) is returning something different for {0} " , c));
}
}
Run Code Online (Sandbox Code Playgroud) 在正确的文化信息中,将用于UI显示的十进制数量格式化为字符串的最佳方法是什么?
我在以这种格式显示时间时遇到了一些麻烦:HH:mm:ss.无论我尝试什么,我都不会以那种格式得到它.
我希望荷兰文化中的时间是"nl-NL".
这是我的一个(虽然我忘了保持计数)第1000次尝试:
CultureInfo ci = new CultureInfo("nl-NL");
string s = DateTime.Now.TimeOfDay.ToString("HH:mm:ss", ci);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
当我的应用程序使用指定的文化运行时.不要关闭应用程序,用户更改系统的文化,例如:从"."更改数字小数分隔符.至 ",".如何我的应用程序可以捕获此事件.谢谢.
注意: C#2.0,Windows窗体.
这段代码出了什么问题?
错误(例外)消息:
不是给定文化的有效日历.
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("fa-Ir"); //Error
ci.DateTimeFormat.Calendar = new System.Globalization.PersianCalendar();
Application.CurrentCulture = ci;
Run Code Online (Sandbox Code Playgroud)
它的解决方案是什么?
我可以Calendar在Windows XP区域选项中添加类型吗?
问候,
我想知道为什么C#中的文化没有预先设定的枚举?由于文化永远不会改变,并且总是像"nl-NL,en-GB,en-US"..为什么不为它做一个简单的事情让事情变得有点容易?
[编辑]
如上所述,文化会发生变化......但不是全部.为什么不制作一个包含所有文化并允许添加/更改它们的枚举/类类型?
如何找到给定语言环境的语言?
示例:input:en_US输出:英文
使用.NET库?我尝试过CultureInfo类,但我找不到有用的东西.
谢谢!
我正在开发一个可以在世界上许多国家看到的应用程序.没有多少国家/地区显示小时,分钟和秒以及其他内容:作为分隔符,但有一些,我想确保为其所在地区正确格式化时间.DateTime很棒,但TimeSpan不是.这些片段来自我在Visual Studio 2010中的即时窗口,使用.Net 4,我的区域设置为Malayalam(印度).dateTime.Now调用还反映了我的时钟,Microsoft Outlook和其他领域的时间显示方式.
DateTime.Now.ToString()
"02-10-12 17.00.58"
Run Code Online (Sandbox Code Playgroud)
http://msdn.microsoft.com/en-us/library/dd784379.aspx说"如果formatProvider为null,则使用与当前区域性关联的DateTimeFormatInfo对象.如果format是自定义格式字符串,则为formatProvider参数被忽略了." 按理说那我甚至不需要传递当前的CultureInfo.我想要的格式是hh.mm.ss,但是在大多数其他语言中显而易见hh:mm:ss,如果还有其他可能性,它应该自动反映这些 - 基本上TimeSpan 应该是文化意识,就像DateTime一样是.
然而:
timeRemaining.ToString()
"00:02:09"
timeRemaining.ToString("c")
"00:02:09"
timeRemaining.ToString("c", CultureInfo.CurrentCulture)
"00:02:09"
timeRemaining.ToString("g")
"0:02:09"
timeRemaining.ToString("G")
"0:00:02:09.0000000"
timeRemaining.ToString("t")
"00:02:09"
timeRemaining.ToString("g", CultureInfo.CurrentCulture)
"0:02:09"
timeRemaining.ToString("g", CultureInfo.CurrentUICulture)
"0:02:09"
timeRemaining.ToString("G", CultureInfo.CurrentUICulture)
"0:00:02:09.0000000"
timeRemaining.ToString("G", CultureInfo.CurrentCulture)
"0:00:02:09.0000000"
timeRemaining.ToString("t", CultureInfo.CurrentCulture)
"00:02:09"
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个简单的单行来以文化意识的方式输出timeSpan.任何想法都表示赞赏.