web-dev-qa-db-fra.com

Analyse de la valeur entière en tant que date / heure

J'ai la date représentée comme un entier comme 20140820 et je veux l'analyser en tant que datetime, comme 2014.08.20.

Dois-je analyser chaque valeur entière (2014) (08) (02) à l'aide de l'index ou existe-t-il un moyen plus simple?

21
user1765862

Si votre CurrentCulture prend en charge le format yyyyMMdd comme format de date et d'heure standard , vous peut simplement utiliser DateTime.Parse méthode comme;

int i = 20140820;
DateTime dt = DateTime.Parse(i.ToString());

S'il ne prend pas en charge, vous devez utiliser les méthodes DateTime.ParseExact ou DateTime.TryParseExact pour l'analyser en tant que format de date et d'heure personnalisé.

int i = 20140820;
DateTime dt;
if(DateTime.TryParseExact(i.ToString(), "yyyyMMdd", 
                          CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{
    Console.WriteLine(dt);
}

Ensuite, vous pouvez formater votre DateTime avec la méthode .ToString() comme;

string formattedDateTime = dt.ToString("yyyy.MM.dd", CultureInfo.InvariantCulture);
38
Soner Gönül

Le moyen le plus simple et le plus performant serait quelque chose comme:

int date = 20140820;

int d = date % 100;
int m = (date / 100) % 100;
int y = date / 10000;

var result = new DateTime(y, m, d);
14
Lanorkin

Essaye ça :-

string time = "20140820";
DateTime theTime= DateTime.ParseExact(time,
                                    "yyyyMMdd",
                                    CultureInfo.InvariantCulture,
                                    DateTimeStyles.None);

OR

string str = "20140820";
string[] format = {"yyyyMMdd"};
DateTime date;

DateTime.TryParseExact(str, 
                          format, 
                          System.Globalization.CultureInfo.InvariantCulture,
                          System.Globalization.DateTimeStyles.None, 
                          out date))

maintenant, la variable date aura requis converted date of string '20140820'

0
Kartikeya Khosla