首页 > 解决方案 > Convert long date/time zone string to datetime

问题描述

I have a string that I am getting from a Telerik DatePicker. The string I'm getting back is "Sat Aug 01 2009 00:00:00 GMT-0400 (Eastern Daylight Time)" I need to convert it to "yyyy-MM-dd" however I am having no luck. I keep the error "string was not recognized as a valid date time".

I've tried:

var fromDate = Convert.ToDateTime(dateFrom)

CultureInfo culture = new CultureInfo("en-US"); 
var fromDate = Convert.ToDateTime(dateFrom, culture);

var fromDate = DateTime.ParseExact(dateFrom, "yyyy-MM-dd", CultureInfo.InvariantCulture);

None of the above ways I have tried worked.

标签: c#date

解决方案


这应该完成任务

var date = DateTime.ParseExact(
    "Sat Aug 01 2009 00:00:00 GMT-0400 (Eastern Daylight Time)",
    "ddd MMM dd yyyy HH:mm:ss 'GMT-0400 (Eastern Daylight Time)'",
    CultureInfo.InvariantCulture);

var parsedDate = date.ToString("yyyy-MM-dd");       

DateTime.ParseExact 的第一个参数将是来自 Datepicker 的字符串

var stringFromDatePicker =  "Sat Aug 01 2009 00:00:00 GMT-0400 (Eastern Daylight Time)";

var date = DateTime.ParseExact(stringFromDatePicker,
            "ddd MMM dd yyyy HH:mm:ss 'GMT-0400 (Eastern Daylight Time)'",
            CultureInfo.InvariantCulture);

var parsedDate = date.ToString("yyyy-MM-dd");

推荐阅读