¿Cómo se convierte una cadena como 2009-05-08 14:40:52,531
en DateTime
?Conversión de una cadena a DateTime
Respuesta
probar este
DateTime myDate = DateTime.Parse(dateString);
una mejor manera sería la siguiente:
DateTime myDate;
if (!DateTime.TryParse(dateString, out myDate))
{
// handle parse failure
}
Usted tiene básicamente dos opciones para esto. DateTime.Parse()
y DateTime.ParseExact()
.
La primera es muy indulgente en términos de sintaxis y analizará las fechas en muchos formatos diferentes. Es bueno para la entrada del usuario que puede venir en diferentes formatos.
ParseExact le permitirá especificar el formato exacto de su cadena de fecha para usar en el análisis. Es bueno usar esto si su cadena siempre está en el mismo formato. De esta forma, puede detectar fácilmente cualquier desviación de los datos esperados.
Puede analizar la entrada de usuario como esto:
DateTime enteredDate = DateTime.Parse(enteredString);
Si usted tiene un formato específico para la cadena, se debe utilizar otro método:
DateTime loadedDate = DateTime.ParseExact(loadedString, "d", null);
"d"
representa el patrón de fecha corta (Consulte MSDN for more info) y null
especifica que la cultura actual se debe usar para analizar la cadena.
Dado que usted es de manipulación del tiempo basada en 24 horas y que tiene una coma que separa la fracción de segundos, recomiendo que se especifica un formato personalizado:
DateTime myDate = DateTime.ParseExact("2009-05-08 14:40:52,531", "yyyy-MM-dd HH:mm:ss,fff",
System.Globalization.CultureInfo.InvariantCulture);
Buenos ojos. No vi la coma en el OP. –
(creo que tenía la intención de usar una coma en la fecha y formato de cadenas, ¿verdad?) –
Editado ... Sí, eso es lo que quise decir ... – CMS
string input;
DateTime db;
Console.WriteLine("Enter Date in this Format(YYYY-MM-DD): ");
input = Console.ReadLine();
db = Convert.ToDateTime(input);
//////// this methods convert string value to datetime
///////// in order to print date
Console.WriteLine("{0}-{1}-{2}",db.Year,db.Month,db.Day);
¿Te perdiste la parte del tiempo? Necesito la fecha y la hora, ¿cómo puedo hacer eso? –
Prueba el de abajo, donde strDate es su fecha en el formato 'MM/dd/aaaa'
var date = DateTime.Parse(strDate,new CultureInfo("en-US", true))
Nadie mencionó que solo funciona con ese formato particular. –
también podría usar DateTime.TryParseExact() de la siguiente manera si no está seguro del valor de entrada.
DateTime outputDateTimeValue;
if (DateTime.TryParseExact("2009-05-08 14:40:52,531", "yyyy-MM-dd HH:mm:ss,fff", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out outputDateTimeValue))
{
return outputDateTimeValue;
}
else
{
// Handle the fact that parse did not succeed
}
Nadie parece haber implementado un método de extensión. Con la ayuda de @CMS's answer:
de trabajo y la mejora de ejemplo fuente completo está aquí: Gist Link
namespace ExtensionMethods {
using System;
using System.Globalization;
public static class DateTimeExtensions {
public static DateTime ToDateTime(this string s,
string format = "ddMMyyyy", string cultureString = "tr-TR") {
try {
var r = DateTime.ParseExact(
s: s,
format: format,
provider: CultureInfo.GetCultureInfo(cultureString));
return r;
} catch (FormatException) {
throw;
} catch (CultureNotFoundException) {
throw; // Given Culture is not supported culture
}
}
public static DateTime ToDateTime(this string s,
string format, CultureInfo culture) {
try {
var r = DateTime.ParseExact(s: s, format: format,
provider: culture);
return r;
} catch (FormatException) {
throw;
} catch (CultureNotFoundException) {
throw; // Given Culture is not supported culture
}
}
}
}
namespace SO {
using ExtensionMethods;
using System;
using System.Globalization;
class Program {
static void Main(string[] args) {
var mydate = "29021996";
var date = mydate.ToDateTime(format: "ddMMyyyy"); // {29.02.1996 00:00:00}
mydate = "2016 3";
date = mydate.ToDateTime("yyyy M"); // {01.03.2016 00:00:00}
mydate = "2016 12";
date = mydate.ToDateTime("yyyy d"); // {12.01.2016 00:00:00}
mydate = "2016/31/05 13:33";
date = mydate.ToDateTime("yyyy/d/M HH:mm"); // {31.05.2016 13:33:00}
mydate = "2016/31 Ocak";
date = mydate.ToDateTime("yyyy/d MMMM"); // {31.01.2016 00:00:00}
mydate = "2016/31 January";
date = mydate.ToDateTime("yyyy/d MMMM", cultureString: "en-US");
// {31.01.2016 00:00:00}
mydate = "11/شعبان/1437";
date = mydate.ToDateTime(
culture: CultureInfo.GetCultureInfo("ar-SA"),
format: "dd/MMMM/yyyy");
// Weird :) I supposed dd/yyyy/MMMM but that did not work !?$^&*
System.Diagnostics.Debug.Assert(
date.Equals(new DateTime(year: 2016, month: 5, day: 18)));
}
}
}
uso DateTime.Parse (cadena)
DateTime l_dateTime= DateTime.Parse(dateTimeStr);
acabo de ella y siempre uso
poner este código en una clase estática> public static class ClassName{ }
public static DateTime ToDateTime(this string datetime, char dateSpliter = '-', char timeSpliter = ':', char millisecondSpliter = ',')
{
try
{
datetime = datetime.Trim();
datetime = datetime.Replace(" ", " ");
string[] body = datetime.Split(' ');
string[] date = body[0].Split(dateSpliter);
int year = date[0].ToInt();
int month = date[1].ToInt();
int day = date[2].ToInt();
int hour = 0, minute = 0, second = 0, millisecond = 0;
if (body.Length == 2)
{
string[] tpart = body[1].Split(millisecondSpliter);
string[] time = tpart[0].Split(timeSpliter);
hour = time[0].ToInt();
minute = time[1].ToInt();
if (time.Length == 3) second = time[2].ToInt();
if (tpart.Length == 2) millisecond = tpart[1].ToInt();
}
return new DateTime(year, month, day, hour, minute, second, millisecond);
}
catch
{
return new DateTime();
}
}
De esta manera, , puede usar
string datetime = "2009-05-08 14:40:52,531";
DateTime dt0 = datetime.TToDateTime();
DateTime dt1 = "2009-05-08 14:40:52,531".ToDateTime();
DateTime dt5 = "2009-05-08".ToDateTime();
DateTime dt2 = "2009/05/08 14:40:52".ToDateTime('/');
DateTime dt3 = "2009/05/08 14.40".ToDateTime('/', '.');
DateTime dt4 = "2009-05-08 14:40-531".ToDateTime('-', ':', '-');
Todas las cantidades anteriores se probaron
diferentes culturas en las cadenas de fecha de escritura mundo de diferentes maneras. Por ejemplo, en los EE. UU., El 20/01/2008 es el 20 de enero de 2008. En Francia, esto arrojará una InvalidFormatException. Esto se debe a que Francia lee las fechas como Día/Mes/Año, y en los EE. UU. Es Mes/Día/Año.
En consecuencia, una cadena como 20/01/2008 se analizará el 20 de enero de 2008 en Francia, y luego arrojará una InvalidFormatException en los EE. UU.
Para determinar su configuración cultural actual, puede usar System.Globalization.CultureInfo.CurrentCulture.
string dateTime = "01/08/2008 14:50:50.42";
DateTime dt = Convert.ToDateTime(dateTime);
Console.WriteLine("Year: {0}, Month: {1}, Day: {2}, Hour: {3}, Minute: {4}, Second: {5}, Millisecond: {6}",
dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second, dt.Millisecond);
- 1. cadena a la conversión DateTime en C#
- 2. Conversión de una cadena en formato ddMMyyyy a DateTime
- 3. Conversión de cadena con desplazamiento UTC a un objeto datetime
- 4. .NET DateTime a SqlDateTime Conversión
- 5. conversión de .NET DateTime a JSON
- 6. Convierte cadena a datetime
- 7. perl cómo convertir una cadena a Datetime?
- 8. anulable DateTime conversión
- 9. conversión de bytes a una cadena C#
- 10. LINQ convertir DateTime a la cadena
- 11. conversión de cadena estrecha a cadena ancha
- 12. Conversión de cadena a entero
- 13. conversión de cadena a numérico
- 14. la conversión de una cadena a una cadena con formato de fecha y hora usando Python
- 15. Conversión de formato de cadena "aaaa-MM-ddTHH: mm: ss.fffZ" a DateTime
- 16. PHP Fecha y hora de la cadena de conversión a MySQL DateTime
- 17. Conversión de un número de 8 dígitos a DateTime Tipo
- 18. Conversión de DateTimeOffset a DateTime - pérdida de datos
- 19. La conversión de DateTime a SqlDateTime es inexacta
- 20. cadena Convertir a DateTime variable de anulable en una línea
- 21. ¿Cómo convertir una cadena de fecha a un objeto DateTime?
- 22. ¿La conversión a datetime falla solo en la cláusula WHERE?
- 23. cadena de DateTime objeto
- 24. Problema conversión de Ruby on Rails DateTime a NSDate
- 25. DataContractJsonSerializer DateTime implícita conversión de zona horaria
- 26. Conversión de NULL a cadena vacía - Error de conversión al convertir de una cadena de caracteres a uniqueidentifier
- 27. C# anulable <DateTime> a cadena
- 28. Conversión SQL DateTime falla cuando no debería haber ninguna conversión
- 29. Conversión de contenidos de HtmlTextWriter a una cadena
- 30. DateTimeConverter la conversión de cadena UTC
@dban ¿Por qué una respuesta de '@ CMS' no está marcada como una respuesta? Puede haber una razón, soy curioso. – nam
Cómo convertir dd/mm/aaaa a mm/dd/aaaa? – ragu
@nam El usuario borró su cuenta, o fue expulsado, no puede hacer clic en él ni ver su reputación/medallas. Lamentablemente, todo lo que podemos hacer es darle algunos pulgares arriba. – YumeYume