很奇怪的问题 定时器里每隔一秒记录 日期时间 过了24点后 竟然多出一个9
代码如下:
private void button4_Click(object sender, EventArgs e)
{
// 使用System.Timers.Timer类
System.Timers.Timer t = new System.Timers.Timer(1000);//实例化Timer类,设置间隔时间为1000毫秒;
t.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到达时间的时候执行事件;
t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
}
public void theout(object source, System.Timers.ElapsedEventArgs e)
{
string str = DateTime.Now.ToString();
Encoding.UTF8.GetBytes(str, 0, str.Length, rbyte, 0);
mywrite.Save(rbyte);
}
WriteFile mywrite = new WriteFile("d:\\test1.txt");
byte[] rbyte = new byte[100];
这是文本文件里记录的日期时间
2008-9-21 23:59:56
2008-9-21 23:59:57
2008-9-21 23:59:58
2008-9-21 23:59:59
2008-9-22 0:00:009
2008-9-22 0:00:019
2008-9-22 0:00:029
------解决方案--------------------string str = DateTime.Now.ToString(); 格式化输出试试
------解决方案--------------------你的系统是啥的? 区域设置是啥?
你手动把时间调到23:59:50,再试试是否每次都这样?
string str = DateTime.Now.ToString("yyyy-M-d H:m:s"); 试试
------解决方案--------------------还是进行格式化输出吧。。
最后这个9貌似23:59:59最后的那个9
------解决方案--------------------string str = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
------解决方案--------------------因为你的byte[]是全局变量
所以
2008-9-21 23:59:59小时是23 两位 记录完后
2008-9-22 0:00:009
的时间部分小时是0一位,所以少了一位,所有上次那个最后的9就还在