我正在使用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