首页 文章

日期格式“dd / MM / yyyy”到“yyyy / MM / dd”

提问于
浏览
-2

我知道之前已经问过这个问题并使用各种方法解决了 .

我正在将字符串中的值转换为DateTime .

在整个项目中,我使用了相同的CultureInfo,所有字符串都转换为使用Convert.ToDateTime()完成的日期,但现在有一个文本字段拒绝转换 .

我试过了:

string date = "27/02/2013";
string startdated = (Convert.ToDateTime(date)).ToString("yyyy/MM/dd");

(转换为datetime并将其更改为我所需格式的sting . 这在其他所有方面都可以正常工作)

甚至

Datetime dt = Convert.toDateTime(date); doesn't work 
DateTime.ParseExact(date, "yyyy/MM/dd", format); doesn't work

并且所有人都给出了相同的错误“字符串未被识别为有效的DateTime . ” . 我从带有ajax日历扩展器的文本框中收到我的日期值(CalendarExtender.Format =“dd / MM / yyyy”用于显示目的,这也适用于其他地方,即“dd / MM / yyyy”用于显示和“yyyy / MM” / dd“for procedure”除了这个最终值,它根本不会改变 . Everthing是通过我的机器完成的,没有外部服务器

2 回答

  • 4

    您的输入字符串格式与您提供DateTime.ParseExact的格式不同 .

    为此工作

    DateTime.ParseExact(date, "yyyy/MM/dd", format);
    

    您必须以年/月/日格式输入日期 . 但你的字符串是日/月/年 .

    这应该更好 .

    string date = "27/02/2013";
    DateTime parsedDate = DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture);
    
  • 3

    您的日期是 date = "27/02/2013"; ,您当前的格式(在 DateTime.ParseExact 中)是 "yyyy/MM/dd"It should be:

    "dd/MM/yyyy"
    

    所以下面的代码应该工作 .

    string date = "27/02/2013";
    DateTime dt = DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture);
    

    您还可以使用 "d/M/yyyy" 格式来处理单个或两位数的日期/月份 .

相关问题