When using ToLocalTime(), how is local time determined? Is local time from the server or the client? My assumption would be the server running the application.
Asked
Active
Viewed 2.0k times
4 Answers
38
It is the local time zone of the computer that code is running on. In an ASP.Net application, the code runs on the server - so that's the time zone that it will return.
The behavior of this function is actually dependent on the .Kind
property of the source value. From the MSDN link you gave:
- Utc - This instance of
DateTime
is converted to local time. - Local - No conversion is performed.
- Unspecified -This instance of
DateTime
is assumed to be a UTC time, and the conversion is performed as if Kind were Utc.
This is non-obvious behavior. You can read other related problems with the .net DateTime
class here and here.
A few other points:
- If you follow best practices, you will set the server's time zone to UTC.
- If you are trying to display time in the user's timezone, you'll have to use one of these strategies.

Community
- 1
- 1

Matt Johnson-Pint
- 230,703
- 74
- 448
- 575
9
ToLocalTime()
, in this case, executes on the server. Therefore the time is evaluated on the server, and it'll return the server time to the client.

KenD
- 5,280
- 7
- 48
- 85
2
Local here is the timezone of the machine that the function executes on.

500 - Internal Server Error
- 28,327
- 8
- 59
- 66