I want to convert date time to specify format that is
Wed Aug 01 2012 14:37:50 GMT+0530 (India Standard Time)
Actually i want to display th
try this to convert datetime to indian date format in c#
IFormatProvider culture = new System.Globalization.CultureInfo("hi-IN", true);
DateTime dt2 = DateTime.Parse(txtStatus.Text, culture, System.Globalization.DateTimeStyles.AssumeLocal);
If you do not want to hardcode the GMT offset and cannot rely on the local time being India Standard Time you can pull this information from the TimeZoneInfo
:
// get UTC from local time
var today = DateTime.Now.ToUniversalTime();
// get IST from UTC
var ist = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(today, "UTC", "India Standard Time");
// find the IST TimeZone
var tzi = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
// get the UTC offset TimeSpan
var offset = tzi.GetUtcOffset(today);
// determine the TimeSpan sign
var sign = offset.Ticks < 0 ? "-" : "+";
// use a custom format string
var formatted = string.Format(CultureInfo.InvariantCulture, "{0:ffffd MMM HH:mm:ss} GMT{1}{2:hhmm}", today, sign, offset);
You can use String.Format()
and specify your own custom format - ffffd mmm dd yyyy
. Try it yourself to explore more.
You can use date.ToString("format")
to do that. Microsoft offer a full reference on how to format your dates the way you want.
Edit:
Perhaps there isn't a format ready that exactly matches your format, but you can combine your own based on the format specifiers provided in the above reference.
// This will output something like Wed Aug 01 2012
date.ToString("ffffd MMM dd yyyy");
I believe you can follow the same pattern to complete the rest on your own.
There's no reason with the information already provided that you can't work this out for yourself, but to get a string reading:
"Wed Aug 01 2012 14:37:50 GMT+0530 (India Standard Time)"
Then what you want is to get the date and time in the correct form (the "Wed Aug 01 2012 14:37:50" bit) with "GMT+0530 (India Standard Time)" added on the end. Assuming that that bit is always the same of course.
So the code you'd need is:
string string_name = (date.ToString("ffffd MMM dd yyyy HH:mm:ss") + "GMT+0530 \(India Standard Time\)");
//string_name will be in the form "Wed Aug 01 2012 14:37:50 GMT+0530 (India Standard Time)"
But, as I said, that's something you should be able to work out yourself using the references provided.