2010-08-23 5 views
0

Existe-t-il un moyen d'empêcher Silverlight/RIA Services de convertir un objet datetime sur le réseau?Dates invariantes avec les services RIA WCF

À l'heure actuelle, je vois que les dates et heures définies sur 'Local' ou 'Unspecified' sont converties en heure locale du serveur lorsqu'elles sont envoyées sur le réseau.

Par exemple:

Le client et le serveur sont en UTC -04: 00: 00. J'utilise DateTime.Today (le type est Local ou Unspecified, cela ne fait pas de différence) sur le client SilverLine. Je vois 23/08/2010 00:00:00.

  • Je soumets mes modifications et regarde les données passer sur le fil. Le champ est exprimé au 23/08/2010 00:00:00 (-04: 00: 00).
  • Très bien. Maintenant, je change mon client pour être en UTC +12: 00: 00

    • J'utilise DateTime.Today sur le client et maintenant je vois 24/08/2010 00:00:00. CEPENDANT - Je soumets mes changements et regarde à nouveau les données. Maintenant, je vois 23/08/2010 08:00:00 (-04: 00: 00). Il est donc évident que le sérialiseur est en train de convertir à l'heure locale du serveur, ce que je ne veux pas. La valeur que je veux dans la base de données est 24/08/2010 00:00:00. L'utilisation de UTC n'est pas une excellente option pour ce champ car la base de données fait partie de notre application héritée et la colonne contient des dates invariantes pour le moment. Je ne veux pas commencer à insérer des datetime UTC à côté des données existantes.

      Des idées?

      Merci à l'avance

    Répondre

    2

    Si je crée DateTime comme ça, cela fonctionne:

    new DateTime(DateTime.Now.Ticks, DateTimeKind.Unspecified).Date; 
    
    +0

    fonctionne très bien, Merci! – msmucker0527