将控制器中ajax帖子的日期转换为yyyyMMdd

本文关键字:日期 转换 yyyyMMdd 控制器 ajax | 更新日期: 2023-09-27 18:26:05

我在控制器的ajax帖子中得到了一些字符串中的日期。

代码

public ActionResult ModifyPartnerForOrganization(Guid partnerID, string aliasName, string effectiveDate, string expirationDate)
        {
            Partner partner = new Partner();
            partner.PartnerId = partnerID;
            partner.ExternalId = aliasName;
            partner.EffectiveDate = DateTime.ParseExact(effectiveDate, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None);
            partner.ExpirationDate = DateTime.ParseExact(expirationDate, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None);
}

来自客户端的日期采用MM-DD-YYYY格式,例如01/10/2014(just for explanning adding the 01/oct/2014) to controller as 2014年1月10日。

当尝试解析时,获取此错误。String was not recognized as a valid DateTime.

有什么帮助吗??。

将控制器中ajax帖子的日期转换为yyyyMMdd

好吧,从客户端收到的格式是mm/dd/yyyy。然后你应该像那样解析它,而不是像yyyyMMdd:

DateTime.ParseExact(effectiveDate, "MM/dd/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None);

还要注意使用MM而不是mm,因为mm是分钟,而不是月。


到目前为止您指定的所有格式:

string effectiveDate = "01/10/2014";
string effectiveDate2 = "30/oct/2014";
string effectiveDate3 = "1/10/2014";
DateTime d = DateTime.ParseExact(effectiveDate, "MM/dd/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None);
DateTime d2 = DateTime.ParseExact(effectiveDate2, "dd/MMM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None);
DateTime d3 = DateTime.ParseExact(effectiveDate3, "d/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None);