Как преобразовать строку с датой и временем в тип данных DateTime? - PullRequest
4 голосов
/ 10 августа 2010

Клиент отправляет строку, содержащую дату в формате YYYYMMDDHHmmSS (например, 201004224432). Нет таких разделителей, как / или -.

Как я могу легко преобразовать это в объект DateTime? Convert.ToDateTime() не работает.

Ответы [ 3 ]

12 голосов
/ 10 августа 2010

Использовать DateTime.ParseExact :

var date = DateTime.ParseExact(
                       "201004224432", 
                       "yyyyMMddHHmmss",
                       CultureInfo.InvariantCulture);

Обратите внимание на настройки вашей строки формата для правильной работы.

9 голосов
/ 10 августа 2010

Вы хотите DateTime.ParseExact, который может взять строку форматирования, подобную вашей, и использовать ее для анализа входной строки.

0 голосов
/ 05 ноября 2012

используйте этот пример кода

using System;using System.Collections.Generic;using System.ComponentModel;используя System.Data;использование System.Drawing;используя System.Text;using System.Windows.Forms;

пространство имен DateTimeConvert {открытый частичный класс Form1: Form {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>";
        }
    }
} }
...