Converting dates in C #

I have an application ASP.NET

MVC

that does not correctly convert date values. I live in the same time zone. My users are in another. At this time, suppose I have the following line:

var date = "7/1/2014 4:00:00 AM +00:00";

      

I am converting this string to DateTime using the following:

DateTime temp;
if (DateTime.TryParse(date, out temp))
{
    temp = temp.ToShortDateString();
    WriteToLog(temp);
}

      

When temp is written to the log file, I can see that it is written as 6/30/2014

. What could it do? I'm expecting 7/1/2014

. It works on my machine. However, it doesn't work on my user machine.

+3


source to share


3 answers


The answer is time slots. You parse a specific point in time (4:00, GMT). This is the same moment in time as the day before.

If you saved it in UTC:



var s = temp.ToUniversalTime().ToShortDateString();

      

You will receive the requested result.

+4


source


string date = "7/1/2014 4:00:00 AM +00:00";
DateTime temp;
if (DateTime.TryParse(date, CultureInfo.InstalledUICulture,
                            DateTimeStyles.AdjustToUniversal, out temp))
{
    string result = temp.ToShortDateString());
}

      



+1


source


By default, the code will use the server's local time, this is how I use it DateTime

in an online site:

  • Convert it to UTC:

    var mydate = DateTime.UtcNow;
    // Or
    var mydate2 = (new DateTime(2015, 6, 3)).ToUniversalTime(); 
    
          

    This will make your application timezone independent.

  • Convert it to your desired timezone:

    Using the TimeZoneInfo class to convert local time to another alternate time zone

    var mydate = DateTime.UtcNow;
    TimeZoneInfo iranTimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Iran Standard Time");
    var tehranDateTime = TimeZoneInfo.ConvertTime(mydate, iranTimeZoneInfo);
    
          

This code will always return the local Tehran time on any computer with the correct date and time setting.

here is a list of the valid TimeZone ID that you can use:

- Dateline Standard Time
- UTC-11
- Hawaiian Standard Time
- Alaskan Standard Time
- Pacific Standard Time (Mexico)
- Pacific Standard Time
- US Mountain Standard Time
- Mountain Standard Time (Mexico)
- Mountain Standard Time
- Central America Standard Time
- Central Standard Time
- Central Standard Time (Mexico)
- Canada Central Standard Time
- SA Pacific Standard Time
- Eastern Standard Time
- US Eastern Standard Time
- Venezuela Standard Time
- Paraguay Standard Time
- Atlantic Standard Time
- Central Brazilian Standard Time
- SA Western Standard Time
- Pacific SA Standard Time
- Newfoundland Standard Time
- E. South America Standard Time
- Argentina Standard Time
- SA Eastern Standard Time
- Greenland Standard Time
- Montevideo Standard Time
- Bahia Standard Time
- UTC-02
- Mid-Atlantic Standard Time
- Azores Standard Time
- Cape Verde Standard Time
- Morocco Standard Time
- UTC
- GMT Standard Time
- Greenwich Standard Time
- W. Europe Standard Time
- Central Europe Standard Time
- Romance Standard Time
- Central European Standard Time
- W. Central Africa Standard Time
- Namibia Standard Time
- Jordan Standard Time
- GTB Standard Time
- Middle East Standard Time
- Egypt Standard Time
- Syria Standard Time
- E. Europe Standard Time
- South Africa Standard Time
- FLE Standard Time
- Turkey Standard Time
- Israel Standard Time
- Kaliningrad Standard Time
- Libya Standard Time
- Arabic Standard Time
- Arab Standard Time
- Belarus Standard Time
- Russian Standard Time
- E. Africa Standard Time
- Iran Standard Time
- Arabian Standard Time
- Azerbaijan Standard Time
- Russia Time Zone 3
- Mauritius Standard Time
- Georgian Standard Time
- Caucasus Standard Time
- Afghanistan Standard Time
- West Asia Standard Time
- Ekaterinburg Standard Time
- Pakistan Standard Time
- India Standard Time
- Sri Lanka Standard Time
- Nepal Standard Time
- Central Asia Standard Time
- Bangladesh Standard Time
- N. Central Asia Standard Time
- Myanmar Standard Time
- SE Asia Standard Time
- North Asia Standard Time
- China Standard Time
- North Asia East Standard Time
- Singapore Standard Time
- W. Australia Standard Time
- Taipei Standard Time
- Ulaanbaatar Standard Time
- Tokyo Standard Time
- Korea Standard Time
- Yakutsk Standard Time
- Cen. Australia Standard Time
- AUS Central Standard Time
- E. Australia Standard Time
- AUS Eastern Standard Time
- West Pacific Standard Time
- Tasmania Standard Time
- Magadan Standard Time
- Vladivostok Standard Time
- Russia Time Zone 10
- Central Pacific Standard Time
- Russia Time Zone 11
- New Zealand Standard Time
- UTC+12
- Fiji Standard Time
- Kamchatka Standard Time
- Tonga Standard Time
- Samoa Standard Time
- Line Islands Standard Time

      

0


source







All Articles