gpt4 book ai didi

c# - 将字符串转换为正确的日期字符串

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:13 25 4
gpt4 key购买 nike

我有从数据库数据生成 xml 的代码。

这里是

 public HttpResponseMessage Index(DateTime today)
{
var timeTables = db.TimeTables
.Where(c=> c.Today == today)
.Select(c => new
{
c.INN,
c.StartDay,
c.StartPause,
c.EndPause,
c.EndDay
}).AsEnumerable();

var xdoc = new XDocument(
new XElement("data",
timeTables.Select(w =>
new XElement("worker",
new XAttribute("id", w.INN),
new XElement("start", w.StartDay),
new XElement("pause", w.StartPause),
new XElement("continue", w.EndPause),
new XElement("end", w.EndDay)
)
)
)
);

return new HttpResponseMessage() { Content = new StringContent(xdoc.ToString(), Encoding.UTF8, "application/xml") };
}

数据取自移动应用请求。例如发送 c.StartDay 的移动应用 17-8-2017T10:8:3。在 xml 中,我需要像这样显示它 yyyy-MM-ddTHH:mm:ss

我如何在生成 xml 时执行此操作?

最佳答案

您应该首先将要获取的字符串解析为 DateTime:

DateTime.ParseExact(c.StartDay,"d-M-yyyyTH:m:s", 
CultureInfo.InvariantCulture)

然后在 xml 中以您喜欢的方式显示它:

.ToString("yyyy-MM-ddTHH:mm:ss")

您可以在选择期间在一条语句中完成所有这些操作:

var timeTables = db.TimeTables
.Where(c=> c.Today == today)
.Select(c => new
{
c.INN,
StartDay = DateTime.ParseExact(c.StartDay,"d-M-yyyyTH:m:s",
CultureInfo.InvariantCulture)
.ToString("yyyy-MM-ddTHH:mm:ss"),
c.StartPause,
c.EndPause,
c.EndDay
}).AsEnumerable();

更新

由于 linq-to-entities 不支持这些方法,您可以在 XmlElement 之后使用它:

new XElement("start", DateTime.ParseExact(w.StartDay,"d-M-yyyyTH:m:s", 
CultureInfo.InvariantCulture)
.ToString("yyyy-MM-ddTHH:mm:ss")),

关于c# - 将字符串转换为正确的日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45729669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com