gpt4 book ai didi

c# - 使用 DateTime.TryParseExact 解析非标准日期格式

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

您好,我正在尝试解析诸如“1012012”、“2012 年 1 月 1 日”之类的日期字符串。

  1. 阅读 Api 它说在日期没有前导 0 的情况下使用 d,%d。无法使其适用于像“1012012”这样的日期

  2. 尝试使用“d MMM YYYY”表示“2012 年 1 月 1 日”,我应该使用什么才能让“st”、“th”起作用?

    using System;
    using System.IO;
    using System.Globalization;

    namespace test
    {
    class Script
    {
    static public void Main(string [] args)
    {

    //String dateString = "9022011"; // q1
    String dateString = "9th February 2011"; //q2
    System.DateTime date = DateTime.MinValue;
    string[] format = { "ddMMyyyy", "d MMM yyyy" }; // what would be the correct format strings?

    if (DateTime.TryParseExact(dateString,format,new CultureInfo("en-AU"),DateTimeStyles.None,out date))
    {
    Console.Out.WriteLine(date.ToString());
    }
    else
    {
    Console.Out.WriteLine("cant convert");
    }
    }
    }

    }

最佳答案

var dateString = "1st February 2011";
DateTime date;
var replaced = dateString.Substring(0,4)
.Replace("nd","")
.Replace("th","")
.Replace("rd","")
.Replace("st","")
+ dateString.Substring(4);

DateTime.TryParseExact(replaced, "d MMMM yyyy",
new CultureInfo("en-us"), DateTimeStyles.AssumeLocal,
out date);

应该可以解决这个问题(抱歉,'th' 很讨厌)- 您必须小心处理 st(8 月)- 只需将它从前几次出现中删除即可:

关于c# - 使用 DateTime.TryParseExact 解析非标准日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7227756/

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