28

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.

drobison
  • 858
  • 1
  • 14
  • 23

4 Answers4

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:

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
4

It is the local time on the server.

Dave Zych
  • 21,581
  • 7
  • 51
  • 66
2

Local here is the timezone of the machine that the function executes on.