Sto chiamando .NET DateTime.ParseExact
con una stringa di formato personalizzata lungo le linee di "MM/dd/yyyy h:mmt"
. Questa stringa gestisce anni a quattro cifre ma non anni a due cifre. C'è un modo per gestire entrambi i casi in una singola chiamata ParseExact? Ho provato "MM/dd/yy h:mmt"
e gestisce solo il caso a due cifre.Come posso accettare sia gli anni a due cifre che a quattro cifre con una singola chiamata a DateTime.ParseExact?
6
A
risposta
19
È possibile passare un array di stringhe di formato per il secondo parametro su questo sovraccarico di ParseExact
- questo includerebbe sia le varianti 2 e 4 anni.
DateTime.ParseExact(myDateTime,
new []{"MM/dd/yy h:mmt", "MM/dd/yyyy h:mmt"},
CultureInfo.InvariantCulture,
DateTimeStyles.None)
0
Si può sempre basta usare il appropriate overload:
var date = DateTime.ParseExact(dateString,
new[] { "MM/dd/yyy h:mmt", "MM/dd/yy h:mmt" },
new CultureInfo("en-US"),
DateTimeStyles.None);
3
chiamata il sovraccarico di DateTime.ParseExact
che accetta una vasta gamma di possibili formati:
DateTime dt =
DateTime.ParseExact(s, new[] { "MM/dd/yyyy h:mmt", "MM/dd/yy h:mmt" }, null, 0);
Per il terzo argomento, passare null
o DateTimeFormatInfo.CurrentInfo
se la stringa di data è localizzato per la cultura corrente dell'utente; passare DateTimeFormatInfo.InvariantInfo
se la stringa della data è sempre nel formato degli Stati Uniti.
Per il quarto argomento, 0 equivale a DateTimeStyles.None
.
Vedere MSDN Library documentation.
1
Utilizzare l'DateTime.ParseExact sovraccarico che accetta una serie di formati di stringa.
MSDN:
string[] formats= {"MM/dd/yyyy h:mmt", "MM/dd/yy h:mmt"};
var dateTime = DateTime.ParseExact(dateString, formats,
new CultureInfo("en-US"),
DateTimeStyles.None);
Problemi correlati
- 1. A completare una variabile con due cifre decimali C#
- 2. date Memorizzazione con più-che-4 cifre anni
- 3. rotondo doppio a due cifre decimali
- 4. rotonda a 2 cifre decimali
- 5. Come creare una password di quattro cifre Layout Android
- 6. Csvwrite con numeri superiori a 7 cifre
- 7. Posso inviare cifre a una chiamata twilio in arrivo con twiml?
- 8. Come posso selezionare un datetime come ggMMyy, quindi un anno a due cifre?
- 9. Come arrotondare a 2 cifre decimali?
- 10. Espressione regolare a 6 cifre
- 11. Come utilizzare codici colore a 3 cifre anziché codici colore a 6 cifre in CSS?
- 12. ottenere codice postale a 9 cifre dal codice postale a 5 cifre, programmatico, api
- 13. Convertire quattro valori anno cifre ad un tipo di data
- 14. Massimo 3 cifre, fino a 3 decimali
- 15. Numero intero esadecimale a due cifre in Java
- 16. Analisi di date a 2 cifre
- 17. Genera un numero casuale a N cifre
- 18. Estrazione di mesi e giorni a due cifre da una data Python
- 19. Android - Rotonda a 2 cifre decimali
- 20. Arrotondamento a 2 cifre decimali in SQL
- 21. limite jQuery a 2 cifre decimali
- 22. rotonda decimale annullabile a 5 cifre decimali
- 23. SPOJ PPATH, Conversione di un dato primo di 4 cifre in un altro numero a 4 cifre
- 24. Formattare un float con due cifre decimali
- 25. Precisione a virgola mobile SQL limitata a 6 cifre
- 26. Un anno a quattro cifre non è stato trovato mancante dei dati
- 27. Creazione di un numero casuale a 4 cifre utilizzando Java con nessuna ripetizione in cifre
- 28. doppio formato a 2 cifre decimali con i principali 0s
- 29. Che cosa significa "Sostituisci con chiamata singola a singolo"?
- 30. Formato A TimeSpan con anni
Grazie; questo è fantastico I formati vengono provati nell'ordine in cui appaiono nell'array? Sarebbe meglio mettere prima il formato a quattro cifre? –
@WilliamGross - La documentazione non specifica, ma è probabile che sì, siano provati in ordine. Sarebbe meglio mettere prima il formato a quattro cifre se la maggior parte delle stringhe attese da analizzare avranno anni a quattro cifre. – Oded