How to Convert PDT Time string to DateTime - c#

I have the data in string format
"22:48:32 Jul 29, 2011 PDT"
Now I want to convert it into datetime.
How can I do it.

You are probably after this method:
DateTime.Parse(string)
PDT is -7 from GMT, so you can refer to the GMT and subtract 7 hours.
DateTime datetime = DateTime.Parse("Jul 29 2011 22:48:32 GMT"); // notice GMT
datetime = datetime.AddHours(-7); // minus 7 hours

Related

Convert string to string(datetime) in EST

I have string in "Mon, 20 Mar 2021 14:04:48 +0000"
and I want to convert it as "20 Mar 2021 | 14:04 PM"
I want to convert the string as it is but it was appearing differently in my local and server.
First of all 20 Mar 2021 is Saturday, not Monday, let's correct it. Then you can ParseExact to get DateTime and finally represent it in the required format with a help of ToString():
string source = "Sat, 20 Mar 2021 14:04:48 +0000";
string result = DateTime
.ParseExact(source, "ddd, dd MMM yyyy HH:mm:ss zzz", CultureInfo.InvariantCulture)
.ToUniversalTime()
.ToString("dd MMM yyyy' | 'HH:mm tt", CultureInfo.InvariantCulture);
Notes:
It seems that you want to obtain Universal (not Local) time, that's why I've added ToUniversalTime()
14:04 PM looks strange for me (14:04 and 02:04 PM are much more frequent formats); put hh instead of HH to have 02:04 PM
If you actually want to be manipulating the timezone information, then use Noda Time.
If that's your exact text format, and the dates and times are what you want, you can convert it manually:
var input = "Mon, 20 Mar 2021 14:04:48 +0000";
var dateParts = input.Split(' ');
var timeParts = dateParts[4].Split(':');
var amPm = int.Parse(timeParts[0]) < 12 ? "AM" : "PM";
var output = $"{dateParts[1]} {dateParts[2]} {dateParts[3]} | {timeParts[0]}:{timeParts[1]} {amPm}";
System.Console.WriteLine(output); // "20 Mar 2021 | 14:04 PM"
Or, if you are feel adventurous, use a regular expression.

Data of the converter and time gtm c#

I get a schedule in this format Fri, 07 Apr 2017 09:03:03 GTM. How can I convert to this format 04/07/2017 09:03:03?
I tried to do with the date conversion method
DateTime.Parse(string date);
But that returns 07/04/2017 06:03:03
DateTime.Parse("Fri, 07 Apr 2017 09:03:03 GMT").ToUniversalTime().ToString("MM/dd/yyyy HH:mm:ss");
DateTime dd = Convert.ToDateTime( DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss"));
You just need to specify the format of the date when converting

How to Parse a Date Time with TimeZone Info

I have following string ,
Thu Sep 24 2015 00:00:00 GMT+0530 (IST)
I tried with following but it's faling.
var twDate = DateTime.Parse("Thu Sep 24 2015 00:00:00 GMT+0530 (IST) ");
Can not use replace , as IST wont be fixed. Any Ideas?
You need to trim the time zone abbreviation off using normal string operations, then specify a custom date and time format string. For example:
// After trimming
string text = "Thu Sep 24 2015 00:00:00 GMT+0530";
var dto = DateTimeOffset.ParseExact(
text,
"ddd MMM d yyyy HH:mm:ss 'GMT'zzz",
CultureInfo.InvariantCulture);
Console.WriteLine(dto);
Note the use of CultureInfo.InvariantCulture here - you almost certainly don't want to parse using the current thread's current culture.
If your string always has the same format and length, you could use this to get UTC:
String dtstr = "Thu Sep 24 2015 00:00:00 GMT+0530 (IST)";
int zoneMin = int.Parse(dtstr.Substring(29, 2)) * 60 + int.Parse(dtstr.Substring(31, 2));
if (dtstr.Substring(28, 1) == "+") zoneMin = -zoneMin;
DateTime dt = DateTime.Parse(dtstr.Substring(0, 24)).AddMinutes(zoneMin);

On converting a string to a DateTime object

Am unable to convert a string which represents date and time ex: "Tue Mar 18 14:37:34 PDT 2014" to a DateTime object. From the format I can figure it out to be in the RFC 1123 format. What is the best way to parse date strings as above?
Timezone literals are not supported by DateTime.Parse/ParseExact. Here is a workaround:
string inputDate = "Tue Mar 18 14:37:34 PDT 2014";
inputDate = inputDate.Replace("PDT", "-7");
DateTime d = DateTime.ParseExact(inputDate, "ddd MMM dd HH:mm:ss z yyyy", culture);
Console.WriteLine(d);
If you can make the format of the string like this (you are pretty close):
Sat, 01 Nov 2008 19:35:00 GMT
You can use DateTime.Parse(dateString);
Find more information here http://msdn.microsoft.com/en-us/library/vstudio/1k1skd40(v=vs.100).aspx

Casting String to DateTime

I have a string in format
Jul 13 2011 1:07PM
I want to cast it as
dd/MM/yyyy HH:mm tt
e.g: 13/7/2011 11:49:00 AM //string=Jul 13 2011 1:07PM
I am using following code to cast it to date.
DateTime date = Convert.ToDateTime(Convert.ToDateTime(myDateString).ToString("dd/MM/yyyy HH:mm:ss"));
This works fine if my day in my string is less than 13
Jul 12 2011 1:07PM //this will cast to desire format fine!
Jul 13 2011 1:07PM //gives error String was not recognized as a valid DateTime.
I understand that it is taking day as month but I can not found a way to cast it to desire format.
See DateTime.ParseExact :
DateTime date = DateTime.ParseExact(myDateString, "MMM dd YYYY H:mmtt", CultureInfo.InvariantCulture);
See also Time Format Strings
You should use DateTime.TryParse
DateTime dt ;
if (DateTime.TryParse("Jul 13 2011 1:07PM",out dt))
MessageBox.Show("Converted to Date object");
Post that you use the ToString() method to get the desired output
dt.ToString("dd/MM/yyyy HH:mm")
First, convert the string Jul 13 2011 1:07PM to a date:
var date = Convert.ToDateTime("Jul 13 2011 1:07PM");
Then, convert it to a string in the format you like:
var dateText = date.ToString("dd/MM/yyyy HH:mm:ss");
I believe you're searching for this:
Date.ParseExact("Jul 13 2011 1:07PM", "MMM d yyyy h:mmtt", Globalization.CultureInfo.InvariantCulture)

Categories

Resources