Questo
lascia pensare che in realtà la chiamata "position.Time" restituisca un
Datetime che contiene l'ora di Greenwich,ma che non contiene alcuna
informazione sulla sua Time Zone
In effetti il problema era proprio questo..Ho risolto in questo modo (scusate il ritardo):
DateTime utcTime = new DateTime(position.Time.Year,position.Time.Month,position.Time.Day,position.Time.Hour,
position.Time.Minute,position.Time.Second,DateTimeKind.Local); //dove position time è il datetime del gps
int UTChours = utcTime.Hour;
int UTCMinute = utcTime.Minute;
int UtcSecond = utcTime.Second;
int UtcMillisecond = utcTime.Millisecond
DateTime today = DateTime.Now.ToUniversalTime();
DateTime satelliteTime = new DateTime(today.Year, today.Month, today.Day, UTChours, UTCMinute, UtcSecond, UtcMillisecond);
e poi satelliteTime.toLocalTime() restituisce l'ora esatta.
Grazia a tutti!!