KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Following my first post: DateTime conversions using NodaTime on ASP.Net MVC 3 Razor website. How to? I'm struggling to find an easy way to convert date/time between local and UTC (both ways), using NodaTime. The current picture is: I have the date/time saved as UTC in the database. When displaying it to the user, I should consider the local time zone and convert it accordingly. When the user provides date/time as a filter, I need to convert it back to UTC before sending to the SQL query. What I have so far: Extension to convert from UTC to local (this part is working fine): public static DateTime UTCtoLocal(this DateTime dateTime) { IDateTimeZoneProvider timeZoneProvider = DateTimeZoneProviders.Tzdb; var utcTimeZone = timeZoneProvider["UTC"]; var dateTimeFromDb = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute, dateTime.Second, dateTime.Millisecond); var zonedDbDateTime = utcTimeZone.AtLeniently(LocalDateTime.FromDateTime(dateTimeFromDb)); var usersTimezoneId = "Europe/London"; //just an example var usersTimezone = timeZoneProvider[usersTimezoneId]; var usersZonedDateTime = zonedDbDateTime.WithZone(usersTimezone); return usersZonedDateTime.ToDateTimeUnspecified(); } Extension to convert from local back to UTC (this part is the problem): public static DateTime LocaltoUTC(this DateTime dateTime) { IDateTimeZoneProvider timeZoneProvider = DateTimeZoneProviders.Tzdb; var usersTimezoneId = "Europe/London"; var usersTimezone = timeZoneProvider[usersTimezoneId]; var dateTimeFromDb = new DateTime(dateTim
Tags (comma-separated)
Save Edits
Cancel