Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to parse an HTTP Last-Modified header from UTC to DateTime in C#

I'm trying to parse the date from the Last-Modified header in an HTTP response.

The date shows as follow:

Last-Modified: Sat, 01 Jul 2006 01:50:55 UTC

I tried DateTime.Parse, DateTime.ParseExact with no success.

What is that UTC thing at the end and why does C# doesn't want to parse it?

Update:

  • The server I am requesting from is PWS/8.0.16 which (i think) is Windows Personal Web Server... This server might be the culprit. (I am interested to know what this server is)
  • The data consists of jpeg images.
  • It seems like the date format for the Last-Modified header is not always the same. Sometimes, it ends with UTC. Others with GMT.
like image 712
KavenG Avatar asked Oct 02 '13 20:10

KavenG


1 Answers

Use ParseExact to specify the input format:

string inputDate = "Sat, 01 Jul 2006 01:50:55 UTC";

DateTime time = DateTime.ParseExact(inputDate,
                    "ddd, dd MMM yyyy HH:mm:ss 'UTC'",
                    CultureInfo.InvariantCulture.DateTimeFormat,
                    DateTimeStyles.AssumeUniversal);
like image 93
JLe Avatar answered Oct 25 '22 03:10

JLe