dateString
如下所示但在较早时间工作不同时会引发错误,不知道为什么它现在不起作用。
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);
编辑代码:最后两行引发错误,有时第一个DateTime将执行但不会执行第二个。提示窗口首先要求的是,最早的日期和时间是:2015年7月24日太平洋夏令时间上午6:26:15。然后另一个提示最新的DateTime是:2015年7月24日下午4:03:51 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);
再次编辑:我想提示提示对话框代码,因为这可能是问题。
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 : "";
}
}
答案 0 :(得分:0)
您的代码在我的计算机上运行没有任何错误。尝试在其他机器上或在不同的解决方案中执行它。如果它工作意味着您的解决方案需要清洁和构建。如果不工作意味着您可能缺少必需的参考 -
using System;
using System.Globalization;
答案 1 :(得分:0)
日期解析的常见错误是使用dd
而不是d
。使用dd
时,24
的值将会通过,但9
将不会;后者必须是09
。但是,如果您使用单个d
,则9
,09
和24
都将被允许。