如何将 PC 上的文本文件中的日期字符串解析为 DateTime
How to Parse a date string from a text file on PC to DateTime
---EDITED---
我有一个简单的 C# Windows 表单。 "c:\date.txt" 就是 (DateTime.Now)。稍后我将创建一些代码来更新此文件,但现在,我遇到了调试问题。它构建良好,但调试在 date.txt 文件中抛出异常...代码如下:
public partial class Form1 : Form
{
private void timer1_Tick(object sender, EventArgs e)
{
DateTime dt = DateTime.Parse(@"C:\date.txt"); // Exception Thrown Here
// Should be: (File.ReadAllText(@"C:\date.txt"))
DateTime dn = DateTime.Now;
TimeSpan dc = (dn - dt);
label1.Text = ("Days = " + dc.Days +
"\nHours = " + dc.Hours +
"\nMins = " + dc.Minutes +
"\nSecs = " + dc.Seconds);
}
}
FormatException 未处理...该字符串未被识别为有效的 DateTime。有一个从索引 0 开始的未知单词。"When converting a string to DateTime, parse the string to take the date before putting each variable into the DateTime object."
我正在解析!我已经尝试过(新的 StreamReader...ToString())。我试过 Convert.ToDateTime(...)。我试过使它成为一种方法...我试过 TryParse。没有任何帮助。 我需要做什么才能让这个东西从文件中读取字符串?
当然,您正在尝试将字符串 "C:\date.txt" 解析为 DateTime
。你最好试试这个:
System.IO.StreamReader file = new System.IO.StreamReader(@"c:\date.txt");
string txt = file.ReadLine();
DateTime dt = DateTime.Parse(txt);
file.Close();
如果文件只有一行包含日期,您可以这样做:
DateTime dt = DateTime.Parse(File.ReadAllText(@"C:\date.txt"));
谢谢大家。这些都是很好的答案。
是 - DateTime.Parse 正在寻找解析 "string",而不是文件或 file.ToString()...
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
if (!File.Exists(@"C:\tmp\date.txt"))
{
File.WriteAllText(@"C:\tmp\date.txt", DateTime.Now.ToString());
}
}
private void timer1_Tick(object sender, EventArgs e)
{
DateTime dn = DateTime.Now;
DateTime dt = DateTime.Parse(File.ReadAllText(@"C:\tmp\date.txt"));
// Read the Text ^ From the File ^
TimeSpan dc = dn - dt;
label1.Text = "Now: " + dn.ToString() +
"\nThen: " + dt.ToString() +
"\nDifference..." +
"\nDays: " + dc.Days.ToString() +
"\nHours: " + dc.Hours.ToString() +
"\nMins: " + dc.Minutes.ToString() +
"\nSecs: " + dc.Seconds.ToString();
}
}
这是 date/time 计数器的一部分,该计数器从工作中发生的最后一次事件开始计数。很多人停下来询问有关显示器的问题以及引发上次计数器重置的问题。
---EDITED---
我有一个简单的 C# Windows 表单。 "c:\date.txt" 就是 (DateTime.Now)。稍后我将创建一些代码来更新此文件,但现在,我遇到了调试问题。它构建良好,但调试在 date.txt 文件中抛出异常...代码如下:
public partial class Form1 : Form
{
private void timer1_Tick(object sender, EventArgs e)
{
DateTime dt = DateTime.Parse(@"C:\date.txt"); // Exception Thrown Here
// Should be: (File.ReadAllText(@"C:\date.txt"))
DateTime dn = DateTime.Now;
TimeSpan dc = (dn - dt);
label1.Text = ("Days = " + dc.Days +
"\nHours = " + dc.Hours +
"\nMins = " + dc.Minutes +
"\nSecs = " + dc.Seconds);
}
}
FormatException 未处理...该字符串未被识别为有效的 DateTime。有一个从索引 0 开始的未知单词。"When converting a string to DateTime, parse the string to take the date before putting each variable into the DateTime object."
我正在解析!我已经尝试过(新的 StreamReader...ToString())。我试过 Convert.ToDateTime(...)。我试过使它成为一种方法...我试过 TryParse。没有任何帮助。 我需要做什么才能让这个东西从文件中读取字符串?
当然,您正在尝试将字符串 "C:\date.txt" 解析为 DateTime
。你最好试试这个:
System.IO.StreamReader file = new System.IO.StreamReader(@"c:\date.txt");
string txt = file.ReadLine();
DateTime dt = DateTime.Parse(txt);
file.Close();
如果文件只有一行包含日期,您可以这样做:
DateTime dt = DateTime.Parse(File.ReadAllText(@"C:\date.txt"));
谢谢大家。这些都是很好的答案。 是 - DateTime.Parse 正在寻找解析 "string",而不是文件或 file.ToString()...
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
if (!File.Exists(@"C:\tmp\date.txt"))
{
File.WriteAllText(@"C:\tmp\date.txt", DateTime.Now.ToString());
}
}
private void timer1_Tick(object sender, EventArgs e)
{
DateTime dn = DateTime.Now;
DateTime dt = DateTime.Parse(File.ReadAllText(@"C:\tmp\date.txt"));
// Read the Text ^ From the File ^
TimeSpan dc = dn - dt;
label1.Text = "Now: " + dn.ToString() +
"\nThen: " + dt.ToString() +
"\nDifference..." +
"\nDays: " + dc.Days.ToString() +
"\nHours: " + dc.Hours.ToString() +
"\nMins: " + dc.Minutes.ToString() +
"\nSecs: " + dc.Seconds.ToString();
}
}
这是 date/time 计数器的一部分,该计数器从工作中发生的最后一次事件开始计数。很多人停下来询问有关显示器的问题以及引发上次计数器重置的问题。