Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法将存储为字符串的datetime转换为IList中的datetime_C#_List_Asp.net Web Api_Lambda_Datetime Format - Fatal编程技术网

C# 无法将存储为字符串的datetime转换为IList中的datetime

C# 无法将存储为字符串的datetime转换为IList中的datetime,c#,list,asp.net-web-api,lambda,datetime-format,C#,List,Asp.net Web Api,Lambda,Datetime Format,我正在开发一个WebApi,它使用Lambda从数据库接收数据并存储在IList中。我得到的输出数据格式为“2018-04-20T14:39:20.01”。但我想将日期格式显示为“20-Apr-2018/02:39:20 PM” 一旦我得到了输出,我就操纵了日期,并将其转换为我想要的格式,存储为字符串 现在,当我试图将该数据发送回IList时,我收到一个错误消息,该字符串未被识别为有效的日期时间 string val = statusSourceType1[0].updatedDate.Valu

我正在开发一个WebApi,它使用Lambda从数据库接收数据并存储在IList中。我得到的输出数据格式为
“2018-04-20T14:39:20.01”
。但我想将日期格式显示为“
20-Apr-2018/02:39:20 PM”

一旦我得到了输出,我就操纵了日期,并将其转换为我想要的格式,存储为字符串

现在,当我试图将该数据发送回IList时,我收到一个错误消息,该字符串未被识别为有效的日期时间

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);
在上述代码中,第一行将日期格式从
2018-04-20T14:39:20.01
转换为
2018年4月15日12:23:21 PM

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

将字符串转换为datetime时,可能是我遇到运行时错误“字符串未被识别为有效的datetime”,或者是datetime格式返回到其原始状态

请帮我做这个

“…存储为字符串的日期时间…”

你的问题就在那里。 您在WebApi中工作,并且您的UI需要的是日期时间,而不是字符串。那么,为什么要费心将日期转换为字符串并返回呢

DateTime
没有显示格式-只有它的字符串表示形式有显示格式


只需向UI发送一个DateTime结构的实例,并让UI处理显示格式—这是UI的责任,而不是服务器。

如果需要,请尝试设置区域性

  Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
然后试试看

  dt.ToString("dd/MMMM/yyyy"); //or whichever
如你所说。回答一个简单的问题,如果您使用
ddmmyyyy
将1112018设置为
date
,您希望如何使转换工作回到datatime。你的应用程序设计不对,让
视图
进行格式化并传递dt obj


让您
查看
期望dt的字符串版本

在@Zohar获取的点。我向我的架构师传达了同样的信息,他认为所有的数据操作都需要在API中完成,而不是在UI中完成(这不是数据操纵-您不会更改日期时间的值,只是更改它对人类客户端的表示方式-并且在任何情况下,如果您的客户端正在接收
DateTime
struct的实例,您都无法控制服务器上的显示格式-正如我所写-
DateTime
不会存储rmat.将datetime转换为字符串的工作原理与预期的@Alex一样。当我试图将字符串设置回我的UI预期的datetime时,我的问题就出现了。@UdhayaS您如何做到这一点?您可以使用
ToString()
设置任何格式。我正在使用相同的格式。谢谢您的输入Jim。