C# 在C语言中转换日期字符串#

C# 在C语言中转换日期字符串#,c#,date,datetime,string-formatting,C#,Date,Datetime,String Formatting,我有一个格式为“dd.MM.yyyy”(例如“01.02.2004”)的日期字符串,希望将其转换为带有字符串的“yyyy-MM-dd”。格式(…)或日期时间(…)或其他格式。 事实上,我只有例外。因此,使用以下代码不起作用: String dateString = "01.02.2004"; datestring = String.Format("{yyyy-MM-dd}", dateString); 这有什么不对?是否有另一种方法可以使用DateTime.ParseExact(..)?您需要

我有一个格式为“dd.MM.yyyy”(例如“01.02.2004”)的日期字符串,希望将其转换为带有字符串的“yyyy-MM-dd”。格式(…)日期时间(…)或其他格式。 事实上,我只有例外。因此,使用以下代码不起作用:

String dateString = "01.02.2004";
datestring = String.Format("{yyyy-MM-dd}", dateString);

这有什么不对?是否有另一种方法可以使用
DateTime.ParseExact(..)

您需要将其解析为
DateTime
,然后使用不同的格式调用
ToString()

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

您需要将其解析为
DateTime
,然后使用不同的格式调用
ToString()

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

您必须首先使用适当的
CultureInfo
将其转换为
DateTime

String dateString = "01.02.2004";
var deCulture = System.Globalization.CultureInfo.CreateSpecificCulture("de-DE");
DateTime dt = DateTime.Parse(dateString, deCulture);
dateString = dt.ToString("yyyy-MM-dd"); 

您必须首先使用适当的
文化信息将其转换为
日期时间

String dateString = "01.02.2004";
var deCulture = System.Globalization.CultureInfo.CreateSpecificCulture("de-DE");
DateTime dt = DateTime.Parse(dateString, deCulture);
dateString = dt.ToString("yyyy-MM-dd"); 

您需要先创建Datetime对象

尝试以下方法:

DateTime t = DateTime.parse("01.02.2004");
String result = t.ToString("{yyyy-MM-dd}", CultureInfo.InvariantCulture);

您需要首先创建一个Datetime对象

尝试以下方法:

DateTime t = DateTime.parse("01.02.2004");
String result = t.ToString("{yyyy-MM-dd}", CultureInfo.InvariantCulture);
您尝试的错误在于:

  • 使用格式字符串时,项目需要以类似
    {0:yyyy-MM-dd}
    的格式列出。
    0:
    是必需的
  • 使用string.Format()时,变量是
    字符串
    ,因此格式字符串
    yyyy-MM-dd
    在这里没有意义
您尝试的错误在于:

  • 使用格式字符串时,项目需要以类似
    {0:yyyy-MM-dd}
    的格式列出。
    0:
    是必需的
  • 使用string.Format()时,变量是
    字符串
    ,因此格式字符串
    yyyy-MM-dd
    在这里没有意义

    • 您正在将字符串作为参数解析为string.Format?你期望从中得到什么

      你应该这样做:

      try
      {
       var date = DateTme.ParseExact("yyyy.MM.dd", dateString, CultureInfo.InvariantCulture);
       var result = date.ToString("yyyy-MM-dd");
      }
      catch(Exception e) { /* ... */}
      

      您正在将字符串作为参数解析为string.Format?你期望从中得到什么

      你应该这样做:

      try
      {
       var date = DateTme.ParseExact("yyyy.MM.dd", dateString, CultureInfo.InvariantCulture);
       var result = date.ToString("yyyy-MM-dd");
      }
      catch(Exception e) { /* ... */}
      

      您是否阅读了string.format()文档?请注意,String.Format需要一个序号:
      String.Format(“{0:yyyy-MM-dd}”,dateValue)(注意
      0:
      表示第一个值)。另外,该值必须是该格式工作的日期时间。您是否阅读了string.format()文档?请注意,String.Format需要一个序号:
      String.Format(“{0:yyyy-MM-dd}”,dateValue)(注意
      0:
      表示第一个值)。加上该值必须是该格式工作的日期时间。为什么不使用TryParseExact?为什么不使用TryParseExact?