J’ai le code suivant –
DateTime timeStamp; timeStamp = System.Convert.ToDateTime(y.InnerText);
Où y.InnerText
est le 11/03/2013 11:35:24
.
Cependant, cela brise ma déclaration d’importation car la firebase database recherche le format –
2013-03-11 11:35:24
Comment définir le format de l’object DateTime?
Comment définir le format de l’object DateTime?
Tu ne peux pas. DateTime
valeurs DateTime
n’ont pas de format, pas plus que les valeurs int
ou double
. Lorsque vous souhaitez les convertir en / à partir de chaînes, vous devez spécifier les informations de formatage.
Au lieu de cela, vous devez utiliser le SQL paramétré et éviter de reconvertir la valeur DateTime
en une chaîne. Il s’agit d’une bonne pratique générale – n’incluez pas de valeurs dans votre chaîne SQL; SQL paramétré présente de nombreux avantages:
Je suggérerais également qu’au lieu d’utiliser Convert.ToDateTime
, vous spécifiez le format attendu lors de l’parsing. Par exemple:
timeStamp = DateTime.ParseExact(y.InnerText, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
Fondamentalement, les deux règles que j’essaie d’appliquer sont les suivantes:
si vous passez datetime à la firebase database SQL, essayez avec le format yourdatetime.ToSsortingng (“aaaa / MM / jj”), cela fonctionnera pour vous.
et encore une chose que vous pouvez append un format date / heure pour votre culture Applicaton. ceci traitera donc le format de date et heure à votre guise.
using System; using System.Globalization; using System.Threading; namespace test { public static class Program { public static void Main() { CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone(); culture.DateTimeFormat.ShortDatePattern = "yyyy/MM/dd HH:mm:ss"; culture.DateTimeFormat.LongTimePattern = ""; Thread.CurrentThread.CurrentCulture = culture; Console.WriteLine(DateTime.Now); } } }
J’utilise cette étape 1. Convertir en DateTime. 2. Utilisez ToSsortingng (); une fonction
Exemple :
DateTime myDateTime = DateTime.Now; ssortingng myDateTimeSsortingng = myDateTime.ToSsortingng("yyyy-mm-dd hh:mm:ss");
vous pouvez utiliser la conversion ToSsortingng en 2013-03-11 11:35:24
DateTime timeStamp; timeStamp = System.Convert.ToDateTime(y.InnerText).ToSsortingng("yyyy-MM-dd HH:mm:ss");
Fondamentalement, Date n’a pas de format. Si le parameter/field
la firebase database est de Datetime type
parameter/field
Datetime type
vous devriez passer comme type Date . Ce n’est pas une bonne idée de passer la date comme une chaîne.
Toutefois, si vous devez traiter ce problème, il est préférable de passer la date dans un none culture specific date format
(ISO8601 ou ISO) dans une requête paramétrée. Sinon, vous pourriez avoir des problèmes avec les serveurs de firebase database dans des parameters de culture différents.
Par exemple, pour le serveur SQL, il est sûr ( en cours de conversion ) de transmettre l’heure de la date dans ISO8601 en tant que;
'yyyy-mm-ddThh:mi:ss.mmm' //(no spaces)
Et si vous substituez simplement votre méthode ToSsortingng () à votre object DateTime? Ne pourriez-vous pas alors choisir le format que vous souhaitez et chaque fois que vous l’utiliserez, il sera formaté comme vous le souhaitez sans que cela vous dérange.
C’est juste une pensée donc je ne sais pas s’il y a de meilleures solutions ou pas.
Vous pouvez ensuite utiliser les propriétés année, mois, jour pour le construire à votre guise. Quelque chose comme:
public override ToSsortingng(){ return this.Year + "-" + this.Month + "-" + this.Day; }
Salutations