- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
/// <summary>
/// Return a DateTime version of the given Jabber date. Example date: 20020504T20:39:42
/// </summary>
/// <param name="dt">The pseudo-ISO-8601 formatted date (no milliseconds)</param>
/// <returns>A (usually UTC) DateTime</returns>
public static DateTime JabberDate(string dt)
{
if ((dt == null) || (dt == ""))
return DateTime.MinValue;
try
{
return new DateTime(int.Parse(dt.Substring(0, 4)),
int.Parse(dt.Substring(4, 2)),
int.Parse(dt.Substring(6, 2)),
int.Parse(dt.Substring(9,2)),
int.Parse(dt.Substring(12,2)),
int.Parse(dt.Substring(15,2)));
}
catch
{
return DateTime.MinValue;
}
}
/// <summary>
/// Get a jabber-formated date for the DateTime. Example date: 20020504T20:39:42
/// </summary>
/// <param name="dt">The (usually UTC) DateTime to format</param>
/// <returns>The pseudo-ISO-8601 formatted date (no milliseconds)</returns>
public static string JabberDate(DateTime dt)
{
return string.Format("{0:yyyy}{0:MM}{0:dd}T{0:HH}:{0:mm}:{0:ss}", dt);
}
Перевод DateTime в строку вида "20020504T20:39:42" и обратно. Из исходников библиотеки Jabber-net.
TryParseExact и ToString с форматом "yyyyMMddTHH:mm:ss" - это пусть лентяи используют.