I know this is a bit late, but here is the solution I had to come up with for processing dates when you want to be time independent. In fact, this is due to the conversion of everything to UTC.
From Javascript to server :
Send dates as epoch values ββwith timezone offset removed.
var d = new Date(2015,0,1)
The server then receives 1420070400000 as the date.
On the server side, convert this epoch value to a datetime object:
DateTime d = new DateTime(1970, 1, 1, 0, 0, 0).AddMilliseconds(epoch);
At the moment, the date is only the date / time provided by the user as they are provided. Effectively this is UTC.
Transition in another way :
When a server retrieves data from a database, presumably in UTC format, it gets the difference as an epoch (make sure that both date objects are local or UTC):
long ms = (long)utcDate.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;
or
long ms = (long)localDate.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Local)).TotalMilliseconds;
When javascript gets this value, create a new date object. However, this date object will be assumed in local time, so you need to cancel it in the current time zone:
var epochValue = 1420070400000
As far as I know, this should work in any time zone where you need to display dates that are not time zone dependent.