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
  • 848
  • 1
  • 14
  • 23

4 Answers4

35

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
  • 214,338
  • 71
  • 421
  • 539
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
  • 4,979
  • 7
  • 46
  • 82
4

It is the local time on the server.

Dave Zych
  • 21,041
  • 7
  • 51
  • 65
2

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