2011-05-20 19 views
5

¿Cuál es la mejor manera de añadir ceros a la fecha y hora en C#Adición de ceros a la fecha y hora de C#

Ejemplo cadena "9/10/2011 9:20:45 AM" convertir en cadena "09/10/2011 09:20:45 AM"

+0

¿Quieres poner ceros a la izquierda en la 'DateTime' objeto o en la cadena resultante método ToString() de DateTime de? Gracias :) – Amedio

+1

IT es ambas cadenas, no uso el objeto DateTime – eomeroff

Respuesta

13

Si usted dice, que es ambas cadenas, entonces debe usar el método DateTime.TryParse:

DateTime dt; 
if (DateTime.TryParse("9/10/2011 9:20:45 AM", out dt)) 
{ 
    Console.WriteLine(dt.ToString("dd/MM/yyyy hh:mm:ss tt")); 
} 
else 
{ 
    Console.WriteLine("Error while parsing the date"); 
} 
+0

gracias Voy a ir así – eomeroff

5
myDate.ToString("dd/MM/yyyy hh:mm:ss tt") 
2
DateTime dt = ... 
dt.ToString("dd/MM/yyyy hh:mm:ss tt"); 
14
DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt") // 12hour set 
DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") // 24hour set 

Más información acerca del formato de métodos/Fecha se pueden encontrar Here

Desde que comentar

Es mejor utilizar el siguiente para analizar un DateTime

DateTime date = DateTime.MinValue; 
DateTime.TryParse("9/10/2011 9:20:45 AM", out date); 
return date.ToString("MM/dd/yyyy hh:mm:ss tt") 

A continuación, puede comprobado si se produce un error al compararlo con DateTime.MinValue en lugar de bloquear la aplicación si el Convert.ToDatetime falla

+2

+1 por 12/24 hora – Jaymz

+1

Porque uso solo cadena es esta solución bien, DateTime dateTime = Convert.ToDateTime (oldDate); Cadena newDate = dateTime.ToString ("MM/dd/aaaa HH: mm: ss tt"); gracias – eomeroff

+0

@SonOfOmer usando "MM/dd/aaaa HH: mm: ss tt" es el doble. HH muestra el tiempo de 24 horas, por lo que mostraría 14 si son las 2 p.m. El tt también muestra PM. Es mejor usar hh: mm: ss tt o HH: mm: ss. –

1

usted puede utilizar string.Format("{0:dd/MM/yyyy hh:mm:ss}", dateTime);

+1

Le daré unos minutos para arreglar esto antes de declinar ... sugerencia: ¿meses/minutos? – Jaymz

1

Uso string stringVariable = string.Format("{0:dd/MM/yyyy hh:mm:ss tt}", dateTimeVariable);

0

sólo tiene que utilizar el código de su le ayudará ..

using System; utilizando System.Collections.Generic; usando System.ComponentModel; usando System.Data; utilizando System.Drawing; usando System.Text; usando System.Windows.Forms;

espacio de nombres DateTimeConvert { public partial class Form1: Formulario { public Form1() { InitializeComponent(); }

private void button1_Click(object sender, EventArgs e) 
    { 
     label1.Text= ConvDate_as_str(textBox1.Text); 
    } 

    public string ConvDate_as_str(string dateFormat) 
    { 
     try 
     { 
      char[] ch = dateFormat.ToCharArray(); 
      string[] sps = dateFormat.Split(' '); 
      string[] spd = sps[0].Split('.'); 
      dateFormat = spd[0] + ":" + spd[1]+" "+sps[1]; 
      DateTime dt = new DateTime(); 
      dt = Convert.ToDateTime(dateFormat); 
      return dt.Hour.ToString("00") + dt.Minute.ToString("00"); 
     } 
     catch (Exception ex) 
     { 
      return "Enter Correct Format like <5.12 pm>"; 
     } 

    } 


    private void button2_Click(object sender, EventArgs e) 
    { 
     label2.Text = ConvDate_as_date(textBox2.Text); 
    } 

    public string ConvDate_as_date(string stringFormat) 
    { 
     try 
     { 
      string hour = stringFormat.Substring(0, 2); 
      string min = stringFormat.Substring(2, 2); 
      DateTime dt = new DateTime(); 
      dt = Convert.ToDateTime(hour+":"+min); 
      return String.Format("{0:t}", dt); ; 
     } 
     catch (Exception ex) 
     { 
      return "Please Enter Correct format like <0559>"; 
     } 
    } 
} } 
+0

¿Por qué ayudará a OP, por qué el OP debería usar esto? ¡Explique las ventajas de su solución, por favor! – markus

Cuestiones relacionadas