yyyy - c#Parsing UTC datetime
datetime.parse format dd/mm/yyyy (4)
Creo que necesitas usar ParseExact http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx
Estoy intentando analizar el 23/11/2011 23:59:59 UTC +0800 como un objeto de fecha y hora de ac #, pero estoy probando el método de análisis de fecha y hora estándar o incluso el análisis de fecha y hora exacto.
¿Algunas ideas?
Msdn para la configuración de formato: https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx
public class Program
{
public static void Main()
{
//original date
string _date = "Thu Jan 15 11:32:09 +0200 2015";
// Describes the date format
string _parsePattern = "ddd MMM dd HH:mm:ss zzz yyyy";
DateTimeOffset dto = DateTimeOffset.ParseExact(_date, _parsePattern, CultureInfo.InvariantCulture);
//last settings
Console.WriteLine(dto.ToString("dd.MM.yyyy hh:mm:ss",CultureInfo.CreateSpecificCulture("tr-TR")));
}
}
para el método de extensión:
public static DateTime getDateFromFormat(this string _date, string _parsePattern)
{
DateTimeOffset dto = DateTimeOffset.ParseExact(_date, _parsePattern, CultureInfo.InvariantCulture);
return Convert.ToDateTime(dto.ToLocalTime());
}
Para la prueba: https://dotnetfiddle.net/xdnjGy
Según lo escrito por James, puedes probar
var dt = DateTime.ParseExact(
"11/23/2011 23:59:59 UTC +0800",
"MM/dd/yyyy HH:mm:ss ''UTC'' K",
CultureInfo.InvariantCulture);
Obtendrá una fecha en el tiempo "local".
Le sugeriría que analice un DateTimeOffset
lugar de un DateTime
, como se recomienda en MSDN cuando use un especificador de desplazamiento de zona horaria en la cadena de formato:
using System;
using System.Globalization;
class Test
{
static void Main(string[] args)
{
string text = "11/23/2011 23:59:59 UTC +0800";
string pattern = "MM/dd/yyyy HH:mm:ss ''UTC'' zzz";
DateTimeOffset dto = DateTimeOffset.ParseExact
(text, pattern, CultureInfo.InvariantCulture);
Console.WriteLine(dto);
}
}
Si lo desea, puede convertirlo en un valor DateTime
en UTC, pero no existe " DateTime
con un desplazamiento de 8 horas". Un DateTime
se considera universal, local o no especificado, sin ningún lugar para un desplazamiento específico. para ser almacenado.
DateTime
es un tipo curioso de varias maneras y puede causar problemas para el desarrollador incauto.