无法将存储为字符串的DateTime转换为Ilist中的DateTime



我正在使用WebAPI,该WebAPI使用lambda接收数据库的数据并存储在Ilist中。我将获得的输出具有datafort作为"2018-04-20T14:39:20.01"。但是我想显示日期格式为" 20-Apr-2018 / 02:39:20 PM"

获得输出后,我会操纵日期并将其转换为我想要的格式,该格式存储为字符串。

现在,当我试图将该数据发送回ILIST时,会出现错误,说该字符串未被视为有效的DateTime。

string val = statusSourceType1[0].updatedDate.Value.ToString("dd-MMM-yyyy hh:mm:ss tt").ToString();
                #1
                statusSourceType1[0].updatedDate = DateTime.Parse(val);
                #2
                statusSourceType1[0].updatedDate = DateTime.ParseExact(val, "dd-MMM-yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
                #3
                statusSourceType1[0].updatedDate = DateTime.ParseExact(val, "dd-MMM-yyyy hh:mm:ss tt", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces);

在上面的代码中,第一行将dateformat从 2018-04-20T14:39:20.01转换为 15-Apr-2018 12:23:21 PM

转换完成后,我想将字符串值转换为datatime并随输出传递,因为我的UI期望DateTime而不是字符串。

在将字符串转换为日期时间时,要么获取运行时错误"字符串未识别为有效的日期时间",要么DateTime格式返回其原始状态。

请帮助我。

" ... DateTime存储为字符串..."

那里有您的问题。您正在WebAPI工作,您的UI期望DateTime,而不是字符串。那么,为什么您要打扰将日期转换为字符串和返回呢?

DateTime没有显示格式 - 只有字符串表示。

只需向UI发送DateTime struct的实例,然后让UI处理显示格式 - 这是UI的责任,而不是服务器。

如果您需要

,请尝试设置文化
  Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

然后尝试

  dt.ToString("dd/MMMM/yyyy"); //or whichever

作为您的评论。回答简单的问题,如果您使用ddmmyyyy将1112018设置为date,您如何期望将转换恢复到Datatime。您的应用设计不正确,让View进行格式并通过DT OBJ

让您 View期望dt

的字符串版本

最新更新