简体   繁体   中英

How to Convert long string to DateTime?

I have a date string in the following format:

var dateString = Fri Jun 26 2020 00:00:00 GMT+0100 (British Summer Time)

How can I convert this to a DateTime in C# such as 26/06/2020 00:00:00

I have tried:

  DateTime.Parse(dateString);

And: DateTime.ParseExact(dateString);

And I get:

 System.FormatException: 'String was not recognized as a valid DateTime.'

You can accomplish this by using DateTime.ParseExact and providing a custom date time format. However, this will only work if you first modify the input string to be able to fit the custom date and time format strings that are included in .net.

CultureInfo provider = CultureInfo.InvariantCulture;

var input = "Fri Jun 26 2020 00:00:00 GMT+0100 (British Summer Time)";

// set up a regex that will match the text starting with GMT, and extract just the timezone offset 
// (the description of the timezone is irrelevant here)
var r = new Regex(@"GMT([+-]\d\d\d\d) \([\w\s]*\)");

// this will remove the extra text: "Fri Jun 26 2020 00:00:00 +0100"
// now we can match it in our format string
var s = r.Replace(input, "$1");

var f = "ddd MMM dd yyyy hh:mm:ss zzz"; // matches the s variable
var d = DateTime.ParseExact(s, f, provider); // you now have parsed your date

This will include the timezone offset in the DateTime object. If you just want it to be set to "26/06/2020 00:00:00" and to ignore the datetime offset, then just change the regex replace above to replace with String.Empty instead of $1 .

This will solve your problem.

var dateString = "Fri Jun 26 2020 00:00:00 GMT + 0100(British Summer Time)"; Console.WriteLine(DateTime.Parse(dateString.Substring(4, 11)));

Hello so what you can do is you can take advantage of "datetime" class and just write this:

 DateTime.Now.ToString("MM/dd/yyyy HH:mm");

edit: sorry i forgot to supply the link haha https://www.c-sharpcorner.com/blogs/date-and-time-format-in-c-sharp-programming1

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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