Esiste un modo integrato in .NET 3.5 per convertire un periodo ISO 8601 in un TimeSpan/tick/millisecondi .NET?Convertire il periodo di tempo in formato ISO 8601 con zecche/millisecondi
risposta
Purtroppo non c'è niente direttamente integrato in .NET.
E non c'è nessuno TimeSpan.ParseExact
prima di .NET 4 che potrebbe essere utilizzato se i componenti della stringa sono noti.
contrassegnato con risposta per essere il primo a rispondere. – yas4891
Anche se non c'è nulla direttamente nel framework .Net ho trovato che Joda.org ha implementato una cosa del genere e mi sono ricordato che Jon ha fatto un porting su .Net chiamato noda-time.
Una prima vista in this source code mostra che ha implementato qualcosa qui per questo scopo. Forse dovresti fare ulteriori indagini in questo progetto.
Grazie per questo link. lavoro abbastanza impressionante fatto lì – yas4891
Non esiste un modo integrato. Per complicare ulteriormente le cose ISO 8601 durations è infatti totalmente incompatibile con TimeSpan o con qualsiasi altro modo esatto di misurare il tempo. Il motivo è che le durate ISO 8601 possono contenere anni e mesi. Il problema è che un anno può avere 365 o 366 giorni e un mese da 28 a 31 giorni. Problema Joda-Time solves this correlando tali periodi inesatti a un istante di tempo.
A meno che non si è fortunati ei periodi capita di utilizzare il P [AAAA] - [MM] - [hh] [GG] T: [mm]: formato [ss] perché poi basta:
string period = "P0003-06-04T12:30:05";
TimeSpan span = new TimeSpan(DateTime.Parse(period.Remove(0,1)).Ticks);
Per il mio compito specifico questo dovrebbe normalmente essere qualcosa come "PT1S" o "PT0.05999999999S", quindi l'analisi non è un vero problema. Volevo solo avere una buona soluzione per questo. Grazie per la tua risposta! – yas4891
XmlConvert.ToTimeSpan
sembra essere stato intorno per sempre e fa esattamente quello che vuoi.
- 1. Tempo ISO 8601 in Ruby
- 2. Come convertire ora ISO 8601 in golang?
- 3. Analisi intervallo di tempo ISO 8601 in Java
- 4. Convertire timestamp Unix a ISO 8601
- 5. come analizzare e generare oggetti DateTime in formato ISO 8601
- 6. ISO 8601 con millisecondi e Retrofit
- 7. Jersey Joda Time Parametro ISO 8601 in formato urlencoded
- 8. DataContractJsonSerializer parsing iso 8601 data
- 9. ISO 8601 Ripetendo Interval
- 10. Deserialize ISO 8601 data stringa di tempo per C# DateTime
- 11. Regex per ISO 8601 durate
- 12. Come arrivare timestamp in formato ISO 8601 con il fuso orario in php
- 13. di analisi ISO 8601 con fuso orario per datetime .NET
- 14. Come stampare in formato ISO 8601 una data con l'offset del fuso orario in JavaScript?
- 15. DateTime ISO 8601 senza componente timezone
- 16. Come posso convertire un valore di data nel formato ISO 8601 in un oggetto data in JavaScript?
- 17. Come convertire la durata dell'API di YouTube (durata ISO 8601 nel formato PT # M # S) in secondi
- 18. Lua ISO 8601 pattern di parsing con datetime
- 19. Parsing della stringa ISO 8601 su DateTime in .NET?
- 20. Parse ISO 8601 a C# DateTime
- 21. ISO-8601 settimane di numerazione vs "Outlook" numerazione in PHP
- 22. Alternativa a due punti in un formato di tempo
- 23. Set default/formato della data globale in Spring MVC a ISO 8601
- 24. ASP MVC 4 JsonResult come utilizzare le date ISO 8601?
- 25. Come si costruisce un datetime ISO 8601 in C++?
- 26. Esiste un modo semplice per convertire la durata ISO 8601 in timedelta
- 27. Come si formatta una data come ISO 8601 in moment.js?
- 28. Fonte di dati ISO in formato xml?
- 29. Stringa ISO-8601 nella cella di Google Fogli
- 30. Calendario Java WEEK_OF_YEAR non conforme a ISO-8601?
@Timwi: Sono un grande fan della brevità. Tuttavia, sono anche una persona naturalmente amichevole. Allora, cosa c'è di sbagliato nel augurare a tutti una buona giornata di lavoro? – yas4891
perché lo stile di SO (e altri siti di rete Stack Exchange) non lo deve fare. Per la discussione usa http://meta.stackoverflow.com. – Richard
Rimuovendolo, non sto indicando che non è amichevole. È solo che non contribuisce veramente alla domanda. Ricorda che questo non è un forum di discussione con post personalizzati. – Timwi