标签: cultureinfo

CultureInfo.CurrentCulture给了我错误的文化

我正在尝试获取客户的国家/地区,因此我使用CultureInfo.CurrentCulture.问题是,当我的加拿大客户使用我的网站时,他们会显示为美国人.

看起来CultureInfo.CurrentCulture正在返回我服务器的国家而不是他们的国家.那么我如何获得客户的国家?

c# cultureinfo currentculture

8
推荐指数
2
解决办法
1万
查看次数

以这种格式显示当前时间:HH:mm:ss

我在以这种格式显示时间时遇到了一些麻烦: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# time cultureinfo

8
推荐指数
2
解决办法
4万
查看次数

波斯日历对CultureInfo无效

这段代码出了什么问题?

错误(例外)消息:

不是给定文化的有效日历.

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# calendar cultureinfo

8
推荐指数
1
解决办法
4103
查看次数

Double.TryParse千位分隔符返回意外结果

我只是碰到了一些非常奇怪的东西,只是想知道我是否遗漏了一些东西.

我试图将一个字符串(有千个分隔符)解析为一个double,并找到了下面的问题.

CultureInfo ci = CultureInfo.CurrentCulture; // en-ZA
string numberGroupSeparator = CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator; //numberGroupSeparator = ,
string numberDecimalSeparator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;//numberDecimalSeparator = .
string strValue = "242,445.24";
double try1;
double try2;
bool btry1 = Double.TryParse(strValue, out try1); //try1 = 242445.24 : btry1 = true
bool btry2 = Double.TryParse(strValue, NumberStyles.Any, null, out try2); //try2 = 0.0 : btry2 = false <- STRANGE
double try3 = Convert.ToDouble(strValue); //try3 = 242445.24
Run Code Online (Sandbox Code Playgroud)

现在我之所以不想使用的原因Convert.ToDouble是因为科学记谱法之前给了我一些问题.

有人知道为什么会这样吗?

编辑:

我已经更新了我当前的文化信息.

.net c# cultureinfo

8
推荐指数
1
解决办法
2250
查看次数

asp.net中的货币格式字符串

我使用的是infragistics webgrid,需要格式化货币字符串.为此我需要一个包含模式的字符串,例如"$ ### ###,00",我希望这可以从我目前的CultureInfo中找到.我怎样才能做到这一点?我是否需要从以下信息中手动撰写:

CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyGroupSeparator
CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyGroupSizes
CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyDecimalDigits
CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyDecimalSeparator
Run Code Online (Sandbox Code Playgroud)

等等

这是单线解决方案吗?

c# asp.net currency cultureinfo

7
推荐指数
2
解决办法
4万
查看次数

IValueConverter在Windows Phone 7中出现错误的文化

我在Windows Phone 7中创建了一个值转换器...

public class MyConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        // ...
    }

    // ... 
}
Run Code Online (Sandbox Code Playgroud)

......并像这样使用它......

<TextBlock Text="{Binding SomeField, Converter={StaticResource MyConverter}, ConverterParameter=SomeParameter}" <!-- ... --> />
Run Code Online (Sandbox Code Playgroud)

我的问题:argumentConvert方法的文化总是"en-US",即使我改变Windows Phone设备(或模拟器)的文化对德国德国说,这个culture论点仍然是英语.

.net c# globalization cultureinfo windows-phone-7

7
推荐指数
1
解决办法
1814
查看次数

如果我指定确切的结构,为什么TryParseExact需要CultureInfo?

看着

DateTime.TryParseExact(dateString, "M/d/yyyy hh:mm:ss tt",
                           CultureInfo.InvariantCulture, 0, out dateValue)
Run Code Online (Sandbox Code Playgroud)

我提供了确切的结构来寻找: M/d/yyyy hh:mm:ss tt

如果是这样,我为什么CultureInfo还需要指定呢?

c# datetime cultureinfo .net-4.0

7
推荐指数
1
解决办法
1200
查看次数

DateTime从当前文化中获取代表日,月,年的字母

我想写一个方法,从datetimeformat给我3个字母 - 代表日,月,年.

所以在en-US文化中我想要的返回值是(加上分隔符)

  • d
  • 中号
  • ÿ
  • /

在de-DE中应该返回相同的方法

  • T(T ag =天)
  • M(M onat =月)
  • J(J ahr =年)
  • .(分隔器)

我查看了DateTimeFormatInfo类表单CurrentCulture,但只能找到分隔符你知道我怎么能得到其余的吗?

var culture = Thread.CurrentThread.CurrentCulture;
Console.WriteLine(culture.DateTimeFormat.DateSeparator);
Run Code Online (Sandbox Code Playgroud)

我需要这个,因为Excel中的TEXT函数不接受来自InvariantCulture的格式,只能从当前文化中处理它.

所以这样的东西在德语Excel版本中无效:

=TEXT(NOW();"dd.MM.yyyy")
Run Code Online (Sandbox Code Playgroud)

这需要设置

=TEXT(NOW();"TT.MM.JJJJ")
Run Code Online (Sandbox Code Playgroud)

(如果用VBA完成它并不重要,它不会被翻译)你可以看看下面的http://www.rondebruin.nl/win/s9/win013.htm

字符串格式可以是任何东西,因为用户可以按照他的喜好输入它,我需要将其翻译成当前的文化.

c# globalization excel cultureinfo

7
推荐指数
1
解决办法
330
查看次数

带小数分隔符的数字错误地转换为Double

在使用文化信息时,将数字转换为double时,我遇到了奇怪的行为.使用荷兰文化进行
转换时"3,3",处理正确.如果我"3,3"使用美国文化转换,它会返回33.我期待一个错误.看我的例子:

static void Main(string[] args)
{
    CultureInfo cultureDutch = new CultureInfo("nl-NL");
    CultureInfo cultureUS = new CultureInfo("en-US");

    System.Threading.Thread.CurrentThread.CurrentCulture = cultureDutch;
    Console.WriteLine("Input 3,3 --> Expected 3,3");
    Console.WriteLine("Output = " + Convert.ToDouble("3,3", cultureDutch));
    // Actual result --> 3,3

    Console.WriteLine("Input 3,3 --> Expected InvalidCastException");
    Console.WriteLine("Output = " + Convert.ToDouble("3,3", cultureUS));
    // Actual result --> 33

    Console.WriteLine();
    Console.WriteLine();

    System.Threading.Thread.CurrentThread.CurrentCulture = cultureUS;
    Console.WriteLine("Input 3.3 --> Expected InvalidCastException");
    Console.WriteLine("Output = " + Convert.ToDouble("3.3", cultureDutch));
    // Actual result --> 33

    Console.WriteLine("Input …
Run Code Online (Sandbox Code Playgroud)

c# cultureinfo

7
推荐指数
1
解决办法
123
查看次数

希腊字符串小写

我有一些麻烦将字符串"SΨZΣ"转换为小写字母.

在C#中,.ToLower()和.ToLowerInvariant()给出了"sψzσ"作为结果.虽然javascript返回"sψzς".

经过一些研究后,我认为已经明白字符'Σ'只有在它不在一个单词的末尾时才应翻译成'σ',在这种情况下它应该变成'ζ' - 所以javascript版本是精细.事实上,我在使用C#字符串调用外部API时遇到错误,而js字符串工作正常.

有关如何使C#正确降低字符串的任何想法?

javascript c# string cultureinfo

7
推荐指数
1
解决办法
136
查看次数