gpt4 book ai didi

c# - 如何创建不在当前区域性中的 DateTime 对象

转载 作者:太空狗 更新时间:2023-10-30 00:46:25 24 4
gpt4 key购买 nike

我真的在这个问题上画了一个空白。我一直致力于全局化,但 DateTime 似乎总是恢复到 CurrentThread 的文化。我将其分解为更小的步骤,希望能找到我的问题,但它开始让我发疯。

我有一个用字符串表示日期的文本框:

        // the CurrentThread's culture is de-DE
// My test browser is also set to de-DE
IFormatProvider culture = new System.Globalization.CultureInfo("de-DE",
true);

// en-US culture, what I'd ultimately like to see the DateTime in
IFormatProvider us_culture = new System.Globalization.CultureInfo("en-US",
true);

// correctly reads the textbox value (22.7.2010 into a datetime)
DateTime dt= DateTime.Parse(txtStartDate.Text, culture,
System.Globalization.DateTimeStyles.NoCurrentDateDefault);

// correctly produces a string 7/22/2010
string dt2 = dt.ToString(us_culture);

此时我想要一个 en-US 格式的 DateTime我都试过了:

        DateTime dt3 = Convert.ToDateTime(dt2, us_culture); 
DateTime dt3 = DateTime.Parse(dt2, us_culture);

但两者都产生 de-DE DateTimes。我问这个问题的动机是其余的业务逻辑将调用 dt2.toString() 并将导致不正确的日期时间字符串。我意识到我可以将 toString() 更改为 toString(us_culture) 但我宁愿不更改所有其余业务逻辑来适应此更改。

有没有办法在 CurrentThread 的文化以外的文化中获取 DateTime?

谢谢你抽出时间,我已经为此苦苦思索了太久。

最佳答案

DateTime 对象就是一个日期/时间,它与文化无关。如果您需要的话,您需要使用特定的文化来格式化日期。

关于c# - 如何创建不在当前区域性中的 DateTime 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3366004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com