首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换后的2030年为1930年

转换后的2030年为1930年
EN

Stack Overflow用户
提问于 2020-06-14 08:08:49
回答 2查看 1.2K关注 0票数 0

我有一些遗留代码,我们正在看到一些问题。例如,如果我们有,

代码语言:javascript
复制
var dt2030 = new DateTime(2030, 01, 01);
var dt1 = Convert.ToDateTime(dt2030.ToString("dd/MM/yy"));

这里的dt1表示1930年。yy有固定格式吗?我的意思是,如果它是10年不同的当前,那么采取更老,其他采取较新的一年?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-14 08:24:53

默认日历从1930年到2029年,因此,如果您要求它解析30年的日期,默认情况下,它只能是1930

一个可能的解决方案是使用CultureInfo并扩展范围,然后在解析日期时也将CultureInfo作为参数传递到:

代码语言:javascript
复制
    CultureInfo ci = new CultureInfo(CultureInfo.CurrentCulture.LCID);
    ci.Calendar.TwoDigitYearMax = 2099;

    var dt2030 = new DateTime(2030, 01, 01);
    var dt1 = Convert.ToDateTime(dt2030.ToString("dd/MM/yy"), ci);

    Console.WriteLine(dt1);
票数 2
EN

Stack Overflow用户

发布于 2020-06-14 08:29:05

代码中的问题是yy。你必须使用yyyy。您应该使用正确的格式yyyy

代码语言:javascript
复制
var dt2030 = new DateTime(2030, 01, 01);
var dt1 = Convert.ToDateTime(dt2030.ToString("dd/MM/yyyy"));
Console.WriteLine(dt1);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62369967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档