C# 中日期格式的转换

发布于 2024-12-18 12:52:18 字数 72 浏览 2 评论 0原文

有谁可以告诉我“1110620”是什么类型的日期格式吗?我怎样才能将其转换为“yyyy-MM-dd”格式。非常感谢任何帮助。谢谢!

is there anyone there who can tell me what type of a date format is this '1110620'? And how can I convert this to a 'yyyy-MM-dd' format. Any help is highly appreciated. Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

爺獨霸怡葒院 2024-12-25 12:52:18
DateTime d;
if (DateTime.TryParse("1110620", CultureInfo.InvariantCulture, DateTimeStyles.None, out d))
    string r = d.ToString("yyyy-MM-dd");
else
    throw new Exception();
DateTime d;
if (DateTime.TryParse("1110620", CultureInfo.InvariantCulture, DateTimeStyles.None, out d))
    string r = d.ToString("yyyy-MM-dd");
else
    throw new Exception();
所谓喜欢 2024-12-25 12:52:18

这应该有效:

string dt = "1110620";
DateTime dt = DateTime.ParseExact(dt, "yyyMMdd", 
                                  CultureInfo.CultureInvariant);

或者你可以尝试(不优雅但有效)

        int start = dt.Length - 4;
        DateTime d = new DateTime(
            int.Parse(dt.Substring(0, start)),
            int.Parse(dt.Substring(start, 2)),
            int.Parse(dt.Substring(2 + start, 2)));

This should work:

string dt = "1110620";
DateTime dt = DateTime.ParseExact(dt, "yyyMMdd", 
                                  CultureInfo.CultureInvariant);

or you can try (not elegant but works)

        int start = dt.Length - 4;
        DateTime d = new DateTime(
            int.Parse(dt.Substring(0, start)),
            int.Parse(dt.Substring(start, 2)),
            int.Parse(dt.Substring(2 + start, 2)));
他夏了夏天 2024-12-25 12:52:18

上面的格式好像是-yyyMMdd。您可以编写 C# 方法来相应地转换它。请参阅 MSDN 了解更多详细信息。

The above format seems to be - yyyMMdd. You can write c# method to convert it accordingly. Refer MSDN for more details.

哆兒滾 2024-12-25 12:52:18

我的猜测是前 3 位数字是两位数年份的扩展。其中 100 对应于 2000 年。

因此,格式最初为 yyMMdd,或者可能是 (year-1900)*10000+month*100+day,逻辑上延伸到之后的年份2000 通过前缀 1。这也保留了整数排序顺序。

因此,要解析它,您可以:

day=input%100;
month=input/100%100;
year=input/10000+1900;

使用此公式 1110620 对应于 2011-06-20

但除非您解释示例的含义,否则这只是猜测。


我的第一个猜测是,这可能是自某个日期以来的几天,但这将使起源位于公元前 1000 年左右,这是不可能的。

My guess is that the first 3 digits are an extension of a two digit year. Where 100 corresponds to the year 2000.

So the format was originally yyMMdd and or perhaps (year-1900)*10000+month*100+day which extends logically to years after 2000 by prefixing a 1. This also preserves integer sorting order.

So to parse it you could:

day=input%100;
month=input/100%100;
year=input/10000+1900;

With this formula 1110620 corresponds to 2011-06-20

But unless you explain what your example should mean, this is just speculation.


My first guess was that it might be days since a certain date, but this would put the origin at around 1000BC, which is unlikely.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文