我的ExpiryDate是" 10/31/2015 12:00:00 AM"表示MM / dd / YYYY hh:mm:ss AM但它是来自SAP的字符串。如何将其转换为MM / dd / YYYY 下面的代码不工作。错误:
" String未被识别为有效的DateTime。"
如何使用linq做到这一点?
var query = deliveriesItemsbypaging.Select(tb => tb.ExpiryDate)
.AsEnumerable() // Do the rest of the processing locally
.Select(x => DateTime.ParseExact(x.Split(new char[0])[0], "MM/dd/yyyy", CultureInfo.InvariantCulture));
此博客代码正在运行:
var r = DateTime.ParseExact("10/31/2015 12:00:00 AM".Split(new char[0])[0], "MM/dd/yyyy", CultureInfo.InvariantCulture);
答案 0 :(得分:4)
您可以在此使用DateTime.Parse
var query = deliveriesItemsbypaging.Select(tb => tb.ExpiryDate)
.AsEnumerable() // Do the rest of the processing locally
.Select(x => DateTime.Parse(x, CultureInfo.InvariantCulture).Date);
.Date
这里只会根据您的需要,在没有时间的情况下为您提供日期。
更新: 如果要获取可枚举的字符串(以特定格式),您可能希望将其重写为
var query = deliveriesItemsbypaging.Select(tb => tb.ExpiryDate)
.AsEnumerable() // Do the rest of the processing locally
.Select(x => DateTime.Parse(x, CultureInfo.InvariantCulture).ToString("MM/dd/YYYY"));
答案 1 :(得分:2)
使用DateTime.ParseExact()
时使用特定的字符串格式,您需要使用
"M/d/yyyy h:mm:ss tt"
格式,下次使用.ToString("MM/dd/yyyy")
List<string> dateTimes = new List<string>();
dateTimes.Add("10/31/2015 12:00:00 AM");
var selectValue = dateTimes.Select(d => d)
.AsEnumerable()
.Select(d => DateTime.ParseExact(d, "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture).ToString("MM/dd/yyyy")).ToList();
var r = DateTime.ParseExact("10/31/2015 12:00:00 AM", "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
结果:
答案 2 :(得分:1)
您可以尝试这样
var query = deliveriesItemsbypaging.Select(tb => tb.ExpiryDate)
.AsEnumerable() // Do the rest of the processing locally
.Select(x => DateTime.ParseExact(x.Split(new char[]{' '})[0], "MM/dd/yyyy", CultureInfo.InvariantCulture));
答案 3 :(得分:1)
var query = deliveriesItemsbypaging
.Select(tb => tb.ExpiryDate)
.AsEnumerable() // Do the rest of the processing locally
.Select(x => DateTime.ParseExact(x, "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture).ToString("MM/dd/yyyy"));
答案 4 :(得分:1)
以下方法可以将MM / dd / YYYY hh:mm:ss AM格式日期转换为可转换字符串日期
string DateConverter(string date)
{
string[] dmy= date.Split(' ')[0].Split('/');
string convertedDay = dmy[1] + "/" + dmy[0] + "/" + dmy[2];
return convertedDay;
}