【问题标题】:Formatting Dates in Code to British format将代码中的日期格式化为英式格式
【发布时间】:2016-05-01 16:36:44
【问题描述】:

早上好,请看下面的代码,有没有办法让 c# 接受英国日期格式的日期?

{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime myValue = DateTime.Now;
            DateTime myBirthday = DateTime.Parse("1977, 3, 30");
            TimeSpan myAge = DateTime.Now.Subtract(myBirthday);
            Console.WriteLine (myAge.TotalDays);
            Console.ReadLine();
        }
    }
}

【问题讨论】:

  • yyyy, M, d 是什么英国日期格式?通常是d/M/yyyy。但是,是的,您可以轻松解析该格式 - 查看 DateTime.ParseExact。

标签: c# date format


【解决方案1】:

您可以通过文化解析:

var culture = "en-GB";
var date = DateTime.Parse(dateString, new CultureInfo(culture , false));

但这将取决于 .NETs 对英国日期格式的解释,但您可能不匹配,因此最好根据您的数据执行此操作,例如:

var date = DateTime.ParseExact(dateString, "dd/MM/yyyy", CultureInfo.InvariantCulture);

【讨论】:

    【解决方案2】:

    用 CultureInfo 试试这个代码:

    var str = "01/01/2016 00:00:00";
    var date = DateTime.ParseExact(str, "MM/dd/yyyy HH:mm:ss", new CultureInfo("en-GB"));
    var res = date.ToString("dd/MM/yyyy HH:mm:ss", new CultureInfo("en-GB"));
    

    你的日期是英国格式的。

    【讨论】:

    • @mrpjspencer 你能批准我的回答吗?
    猜你喜欢
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    • 1970-01-01
    相关资源
    最近更新 更多