Récupérer une date vers Angular depuis un JSON (service C#)

Si on récupère une date depuis un JSON, elle n'est pas convertie automatiquement en un objet date. Pour cela il faut faire la manipulation suivante :

  maDate = (maDate ? new Date(maDate) : null);

traitement sur une liste d’objets :

  // fix dates : JSON => Date()
this.rappels.map(curRappel => {
  curRappel.date = (curRappel.date ? new Date(curRappel.date) : null);
})
/**
 * Convertir une date JSON vers un objet Date JS au fuseau local.
 * Interpréter la chaîne JSON comme étant une date uniquement (on force l’heure à 12h pour ne pas avoir la date qui change avec Firefox).
 * @param jsonDate : chaîne json de type date/heure UTC (sera convertie en Date locale (à 12h)) ou bien Date (sera copiée et forcée à 12h).
 * @returns date locale.
 */
public static jsonUtcDateToLocaleDate(jsonDate: string | Date): Date {
  let retVal: Date = null;
  if (jsonDate) {
    // on veut que la date du JSON qui est un string, soit convertie en Date et interprétée comme étant
    // une date UTC => on ne garde que la partie date => les 10 premiers caractères de la chaîne
    // source : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Date/parse#format_de_la_cha%C3%AEne_de_caract%C3%A8res
 
    // s’il s’agit bien d’une string
    if (jsonDate instanceof String) {
      retVal = new Date((jsonDate as string).slice(0, 10));
      // s’il s’agit déjà d’une date => on n’a rien à changer
    } else {
      retVal = new Date(jsonDate as Date);
    }
    // forcer à 12h car Chrome et Firefox ne décalent pas les heures de la même manière.
    retVal.setHours(12, 0, 0, 0);
  }
  return retVal;
}