Click here to Skip to main content
15,902,198 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have inserted the date time as UTC format (2019-05-06T17:48:43Z)and while trying to return that and trying to display based on locale it is displaying incorrect date.
Could you please assit on this how to handle this type of utc format datetimes to convert as user local time zone.


What I have tried:

I have tried with this code it always get the time with increase of 1 hour.
Actual Morocco Time : 9:10 AM
But this code is displaying 10:10 AM

string utcLogTimeFromAPI = (String.Format("{0:s}", DateTime.UtcNow) + DateTimeOffset.UtcNow.ToString("%K"));
            TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Morocco Standard Time");
            DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(Convert.ToDateTime(utcLogTimeFromAPI).ToUniversalTime(), cstZone);
            Console.WriteLine("cstTime " + cstTime);
Posted
Updated 8-May-19 23:15pm
v3
Comments
Richard MacCutchan 8-May-19 4:36am    
You have not told us what the problem is. But if DST is in effect the local time conversion should be correct.
[no name] 8-May-19 4:46am    
Looks like you're converting UTC to UTC

DateTime localTime = TimeZoneInfo.ConvertTimeToUtc(utcDateTime, cstZone);
DGKumar 9-May-19 5:14am    
I have tried with this code
string utcLogTimeFromAPI = (String.Format("{0:s}", DateTime.UtcNow) + DateTimeOffset.UtcNow.ToString("%K"));
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Morocco Standard Time");
DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(Convert.ToDateTime(utcLogTimeFromAPI).ToUniversalTime(), cstZone);
Console.WriteLine("cstTime " + cstTime);

But getting 1 hour extra while displaying
Is any thing i have missed?

1 solution

I suspect that Gerry is correct:
Quote:
Looks like you're converting UTC to UTC

But the only person that can be sure is you - we don't have any access to your log data, so we have no idea exactly what you are reading.

So, it's going to be up to you.
Fortunately, you have a tool available to you which will help you find out what is going on: the debugger. A quick Google for the name of your IDE and "debugger" should give you the info you need to use it.

Put a breakpoint on the first line in the function, and run your code through the debugger. Then look at your code, and at your data and work out what should happen manually. Then single step each line checking that what you expected to happen is exactly what did. When it isn't, that's when you have a problem, and you can back-track (or run it again and look more closely) to find out why.

Sorry, but we can't do that for you - time for you to learn a new (and very, very useful) skill: debugging!
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900