C# Converti la stringa in Datetime

Minahil Noor 16 febbraio 2024
  1. Programma C# per convertire stringa in DateTime usando Convert.ToDateTime()
  2. Programma C# per convertire stringa in DateTime usando DateTime.Parse()
  3. Programma C# per convertire una stringa in un DateTime usando DateTime.ParseExact()
  4. Conclusione
C# Converti la stringa in Datetime

Nella maggior parte dei casi, otteniamo una data sotto forma di stringa e vogliamo utilizzare individualmente giorno, mese e anno. Non preoccuparti, in C#, per convertire una stringa in un oggetto DateTime, utilizziamo una classe predefinita denominata DateTime.

Esistono diversi metodi per convertire una stringa in DateTime in C#, ma qui elaboreremo solo tre metodi con esempi in esecuzione. Questi metodi sono Convert.ToDateTime(), DateTime.Parse() e DateTime.ParseExact().

Programma C# per convertire stringa in DateTime usando Convert.ToDateTime()

La sintassi corretta di Convert.ToDateTime() è

Convert.ToDateTime(dateTobeConverted);
Convert.ToDateTime(dateTobeConverted, cultureInfo);

Va notato qui che se non si forniscono informazioni sulla cultura, per impostazione predefinita, il compilatore vedrà la nostra stringa di data come month/day/year. CultureInfo è una classe C# nello spazio dei nomi System.Globalization che fornisce informazioni su una cultura specifica.

using System;

public class Conversion {
  public static void Main() {
    string CurrentDate = "06/04/2020";

    // Use of Convert.ToDateTime()
    DateTime DateObject = Convert.ToDateTime(CurrentDate);
    Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
                      DateObject.Year);
  }
}

Produzione:

The Date is : 4 6 2020

Ora lo implementeremo passando l’oggetto CultureInfo come parametro.

using System;
using System.Globalization;
public class Conversion {
  public static void Main() {
    string CurrentDate = "06/04/2020";

    // Creating new CultureInfo Object
    // You can use different cultures like French, Spanish etc.
    CultureInfo Culture = new CultureInfo("en-US");
    // Use of Convert.ToDateTime()
    DateTime DateObject = Convert.ToDateTime(CurrentDate, Culture);
    Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
                      DateObject.Year);
  }
}

Produzione:

The Date is : 4 6 2020

Se cambiamo CultureInfo in nl-NL, il mese e il giorno verranno scambiati.

using System;
using System.Globalization;
public class Conversion {
  public static void Main() {
    string CurrentDate = "06/04/2020";
    CultureInfo Culture = new CultureInfo("nl-nl");

    DateTime DateObject = Convert.ToDateTime(CurrentDate, Culture);
    Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
                      DateObject.Year);
  }
}

Produzione:

The Date is : 6 4 2020

Programma C# per convertire stringa in DateTime usando DateTime.Parse()

La sintassi di DateTime.Parse() è,

DateTime.Parse(dateTobeConverted);
DateTime.Parse(dateTobeConverted, cultureInfo);

Lo stesso è il caso del metodo DateTime.Parse(), se non forniamo informazioni sulla cultura come argomento, allora per impostazione predefinita il nostro sistema lo vedrà come month/day/year.

Se il valore della stringa da convertire è null, restituirà ArgumentNullException che dovrebbe essere gestito utilizzando il blocco try-catch.

using System;

public class Conversion {
  public static void Main() {
    string CurrentDate = "06/04/2020";

    // Use of DateTime.Parse()
    DateTime DateObject = DateTime.Parse(CurrentDate);
    Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
                      DateObject.Year);
  }
}

Produzione:

The Date is : 4 6 2020

Programma C# per convertire una stringa in un DateTime usando DateTime.ParseExact()

La sintassi di DateTime.ParseExact() è,

DateTime.ParseExact(dateTobeConverted, dateFormat, cultureInfo);

DateTime.ParseExact() è il metodo migliore per convertire una stringa in DateTime. In questo metodo, passiamo il formato della data come argomento. Ciò rende facile per l’utente eseguire esattamente la conversione.

Qui abbiamo passato null come parametro al posto delle informazioni sulla cultura perché è un argomento completamente nuovo e ci vuole tempo per capirlo.

using System;

public class Conversion {
  public static void Main() {
    string CurrentDate = "06/04/2020";

    // Use of DateTime.ParseExact()
    //  culture information is null here
    DateTime DateObject = DateTime.ParseExact(CurrentDate, "dd/MM/yyyy", null);
    Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
                      DateObject.Year);
  }
}

Produzione:

The Date is : 6 4 2020

Conclusione

Esistono molti metodi per convertire una stringa in DateTime in C#. Ne abbiamo discusso alcuni. Il metodo migliore per convertire una stringa in DateTime è DateTime.ParseExact().

Articolo correlato - Csharp String