Ошибка, возникающая, когда dateString
является следующим, но работал раньше в другое время, не уверен, почему он не работает сейчас.C# Строка не была признана действительной DateTime
string dateString = "Jul 24, 2015 4:03:51 PM PDT";
string format = "MMM dd, yyyy h:mm:ss tt PDT";
CultureInfo provider = CultureInfo.InvariantCulture;
DateTime time = DateTime.ParseExact(dateString, format, provider);
Console.WriteLine(time);
Edited Код: Ошибка генерируется либо из двух последних строк, иногда первый DateTime будет выполняться, но не второй. Окно подсказки просто запрашивает, во-первых, самую раннюю дату и время: 24 июля 2015 г. 6:26:15 AM PDT. А потом еще подсказка для последней DateTime, которая: 24 июля 2015 4:03:51 PM PDT
string afterpromptvalue = Prompt.ShowDialog("Enter earliest Date and Time", "Unshipped Orders");
string beforepromptvalue = Prompt.ShowDialog("Enter latest Date and Time", "Unshipped Orders");
string format = "MMM dd, yyyy h:mm:ss tt PDT";
CultureInfo provider = CultureInfo.InvariantCulture;
DateTime createdAfter = DateTime.ParseExact(afterpromptvalue, format, provider);
DateTime createdBefore = DateTime.ParseExact(beforepromptvalue, format, provider);
Edited снова: Я хотел бы поставить быстрый код диалогового окна, так как это может быть проблемой.
public static class Prompt
{
public static string ShowDialog(string text, string caption)
{
Form prompt = new Form();
prompt.Width = 500;
prompt.Height = 150;
prompt.FormBorderStyle = FormBorderStyle.FixedDialog;
prompt.Text = caption;
prompt.StartPosition = FormStartPosition.CenterScreen;
Label textLabel = new Label() { Left = 50, Top=20, Text=text };
TextBox textBox = new TextBox() { Left = 50, Top=50, Width=400 };
Button confirmation = new Button() { Text = "Ok", Left=350, Width=100, Top=70, DialogResult = DialogResult.OK };
confirmation.Click += (sender, e) => { prompt.Close(); };
prompt.Controls.Add(textBox);
prompt.Controls.Add(confirmation);
prompt.Controls.Add(textLabel);
prompt.AcceptButton = confirmation;
return prompt.ShowDialog() == DialogResult.OK ? textBox.Text : "";
}
}
Можете ли вы просто ** Convert.ToDateTime (datestring) ** – code
Ваш код отлично работает. –
Какая ошибка? Добавили ли вы 'using System.Globalization' – devilfish17