繁体   English   中英

如何通过linq将MM / dd / YYYY hh:mm:ss AM转换为YYYY-MM-dd datetime格式?

[英]how to convert MM/dd/YYYY hh:mm:ss AM to YYYY-MM-dd datetime format by linq?

我有来自数据库的数据,其中包括一些列。 其中之一是ExpiryDate。 它具有SAP日期时间格式:MM / dd / YYYY nn:mm:ss AM

在此处输入图片说明

我想将其从MM / dd / YYYY hh:mm:ss AM转换为YYYY-MM-dd。 可能吗?

   deliveriesItemsbypaging.Convert(q => q.ExpiryDate.ToString("yyyy-MM-dd")).Tolist() <DeliveryItem>;

使用linq有可能吗?

我有来自数据库的数据,其中包括一些列。 其中之一是ExpiryDate。 它具有SAP日期时间格式:MM / dd / YYYY nn:mm:ss AM

根据我对问题的理解,您正在使用SAP进行数据存储,因此必须使用可用于SAP中C#的提供程序来连接和获取数据。 现在需要回答的重点是:

  1. 在C#中,您是否具有DateTime type或某些SAP DateTime type (存储DateTime),并且具有固有的转换为C#DateTime的能力,所以我假设它是C#DateTime,并且您希望它以YYYY-MM-DD格式表示

现在在此处查看Microsoft提供的DateTime源代码。

很明显,没有构造函数会在仅填充内部属性的任何地方都采用DateTime格式,从而知道年,月,日以及其他相关值,因此,在大多数情况下,对格式都没有要求,我们将ToString method称为DateTime对象,可以使同一对象代表适当的格式,请查看以下链接以了解可用的自定义格式。

但是,当我们将String转换为DateTime ,在Parse方法中,有一个IFormatProvider对象选项,该选项可以在System.Globalization命名空间中使用DateTimeFormatInfo对象,该对象可用于应用自定义/本地格式,请在此处检查源代码 ,它可以帮助实现更为复杂的要求。

格式化是出于表示的目的,可以在Ui中显示值的同时进行格式化,Linq与它无关。 您可以使用(经测试的代码)之类的方法在有无Linq的情况下直接在代码中转换DateTime值。

DateTime d = DateTime.Now;  
var dateValue = d.ToString("yyyy-MM-dd")

请注意年份和日期的小写字母和月份的大写字母,这是正确答案的格式要求。

如果ExpiryDate是DateTime字段,则可以尝试

列出newDateFormat = deliveryItemsbypaging.Select(q => q.ExpiryDate.ToString(“ yyyy-MM-dd”))。Tolist()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM