New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.

Enhanced Time Zone support in 6

Besides other goodies in DotNetNuke 6, the Time Zone support has been enhanced to provide a much richer feature-set including support for Daylight Savings. Pre 6, Portal and User Time Zone settings were offset value in minutes, now they are referred through a first-class .Net object called as TimeZoneInfo.

UI Changes – User Profile and Portal Settings:

6 offers a much wider choice for Time Zone selection; same as what Clock on typical Windows workstation of server .

Pre 6 it was difficult for module developers to accurately detect if Time Zone supported Daylight Savings or not. Now with the availability of .Net TimeZoneInfo class, module developers can very easily find all the Daylight Savings related information, both for the portals and for the users. Some of the properties that can be useful are SupportsDaylightSavingTime and BaseUtcOffset.

As an example, in pre 6, an offset of -420 minutes meant just one value: Mountain Standard Time, disregarding the fact that there were two more Time Zone settings available with the same offset: Arizona and Chihuahua. 6 allows selection of any of the three options.



UI Changes – Time Zone Editor removed:

Since, there is no need for the old Time Zone Editor it has been removed.



API Changes

1) Old DotNetNuke.Entities.Users.UserProfile.TimeZone property is marked as Obsolete. Replaced by DotNetNuke.Entities.Users.UserProfile.PreferredTimeZone property. PreferredTimeZone is .Net TimeZoneInfo.

2) Old DotNetNuke.Entities.Portals.PortalSettings.TimeZoneOffset property is marked as Obsolete. Replaced by DotNetNuke.Entities.Portals.PortalSettings.TimeZone property. TimeZone is .Net TimeZoneInfo.

Note: As true with any obsolete APIs, they will continue to function, however, module developers should stop using them and move on to their replacements.

3) Two brand new APIs have been introduced to obtain current time. These API make a direct query into the database and return timestamp from database. These API will be very useful in a web-farm configuration with multiple web-heads or configurations where web-head and database are deployed on separate servers, perhaps separate time zones.

Obtaining timestamp directly from database removes any confusion about consistency or accuracy of timestamp. Since the API will be querying one single source all the time, the time returned will always be consistent and accurate.

a) DotNetNuke.Services.SystemDateTime.SystemDateTime.GetCurrentTimeUtc. Gets Current Date Time in Utc from database.

b) DotNetNuke.Services.SystemDateTime.SystemDateTime.GetCurrentTime. Gets Current Date Time from database.


The enhancements have been made in the core-framework and therefore will be available on all the editions of DotNetNuke 6 and beyond.


Upgrade Scenario

The new Time Zone settings (both Portals and Users) will be available on newer installations of 6 and also on the ones upgraded from a previous version.

The Portal’s time zone setting will be converted during upgrade itself.

The user’s time zone setting will be lazy upgraded, meaning they will be converted on first load of the profile (user login, viewing user’s profile, etc.).

The conversion is based on hard-coded mappings in the framework. The mapping is borrowed from TimeZones.xml file in App_GlobalResources folder from a standard pre 6 installation. For the curious mind, the mappings can be read in the source code here, just look for  ConvertLegacyTimeZoneOffsetToTimeZoneInfo method.


What to watch out for

After upgrade, Portal Administrators should inspect Time Zone settings for each and every portals and make sure the auto-conversion from old offset to the new setting has been done per their expectations. If not, the setting can be very easily updated using Admin->Site Settings. Same can be done for Users as well.

Quick Video

Here is the link to a quick video on this:

  • Published:


Comment Form

Only registered users may post comments.


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Daniels (3)
Alex Shirley (10)
Andrew Hoefling (3)
Andrew Nurse (30)
Andy Tryba (1)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (37)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Bogdan Litescu (1)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (213)
Chris Paterra (55)
Clint Patterson (108)
Cuong Dang (21)
Daniel Bartholomew (2)
Daniel Mettler (181)
Daniel Valadas (48)
Dave Buckner (2)
David Poindexter (12)
David Rodriguez (3)
Dennis Shiao (1)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (80)
Francisco Perez Andres (17)
Geoff Barlow (12)
George Alatrash (12)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (274)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Kelly Ford (4)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matt Rutledge (2)
Matthias Schlomann (16)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Miguel Gatmaytan (3)
Mike Horton (19)
Mitchel Sellers (40)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Oliver Hine (1)
Patricio F. Salinas (1)
Patrick Ryan (1)
Peter Donker (54)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Sacha Trauwaen (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott Schlesier (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Steven Fisher (1)
Tony Henrich (3)
Torsten Weggen (3)
Tycho de Waard (4)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (40)
Will Strohl (180)
William Severance (5)
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out