C# 正在将字符串转换为字符串类型“的日期时间”;2012年7月12日“;

C# 正在将字符串转换为字符串类型“的日期时间”;2012年7月12日“;,c#,arrays,datetime,C#,Arrays,Datetime,我正在尝试将包含日期的字符串数组转换为字符串格式 private string[] ex = new string[]{ "29-06-2017","29-12-2016","30-06-2016","31-12-2015","25-06-2015","24-12-2014","26-06-2014","26-12-2013"}; 我想转换为十进制数组,我使用了下面的代码,但它不起作用 public void load() { DateTime[]

我正在尝试将包含日期的字符串数组转换为字符串格式

 private string[] ex = new string[]{
         "29-06-2017","29-12-2016","30-06-2016","31-12-2015","25-06-2015","24-12-2014","26-06-2014","26-12-2013"};
我想转换为十进制数组,我使用了下面的代码,但它不起作用

 public void load()
    {
        DateTime[] exDate=Array.ConvertAll(ex, new Converter<string, DateTime>(convertDecimal)); 
        List<DateTime> expiryDate = new List<DateTime>();
        expiryDate.AddRange(exDate);
        expiryDate.Sort();
        _expiryDate=expiryDate;
    }

    public static DateTime convertDecimal(string strgDate)
    {
        return DateTime.Parse(strgDate);
    }

尝试如下转换:

public static DateTime convertDecimal(string strgDate)
{
    return DateTime.ParseExact(strgDate, "yyyy-MM-dd",
                    System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None));

}

@MarkByers的“字符串未被识别为有效的日期时间”。@Adil Mammadov,非常感谢,您回答得很快,非常好。如果我能帮助Cicada,我会很高兴,是的,我尝试了null,它成功了。但是“系统.全球化.文化信息.当前文化”的意义是什么呢?我只等了10分钟就可以接受你的答案了。等待10分钟来接受答案非常令人恼火。这很痛苦,但输出有点奇怪,比如我的字符串是“12-07-2012”,但我在2012年12月7日得到了转换结果,07月份是7,虽然它是可以的,但在下拉菜单中(例如,12/11/2012和12/7/2012)。它在下拉菜单中看起来不一致有解决方案吗??如果您的应用程序要去其他国家附近的任何地方,请务必明确日期格式,如此答案所示,否则您将受到伤害。@Vishwa
但我将转换结果为2012年7月12日
,不,您将获得DateTime对象,您看到的是它的字符串表示形式,具体取决于您的语言环境。如果需要特定格式,请使用
dateTime.ToString(格式)
public static DateTime convertDecimal(string strgDate)
{
    return DateTime.ParseExact(strgDate, "yyyy-MM-dd",
                    System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None));

}
var dates = ex.Select(d => DateTime.ParseExact(d, "dd-MM-yyyy", CultureInfo.InvariantCulture))
              .ToList();