Клиент отправляет строку, содержащую дату в формате YYYYMMDDHHmmSS (например, 201004224432). Нет таких разделителей, как / или -.
YYYYMMDDHHmmSS
201004224432
/
-
Как я могу легко преобразовать это в объект DateTime? Convert.ToDateTime() не работает.
Convert.ToDateTime()
Использовать DateTime.ParseExact :
var date = DateTime.ParseExact( "201004224432", "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
Обратите внимание на настройки вашей строки формата для правильной работы.
Вы хотите DateTime.ParseExact, который может взять строку форматирования, подобную вашей, и использовать ее для анализа входной строки.
DateTime.ParseExact
используйте этот пример кода
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>"; } } } }
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>"; } } } }