如何将ticks转换为datetime并将其格式化为“ss:fff”? 我的代码:
public partial class MainWindow : Window
{
private DispatcherTimer timer;
private long _ticks = 0;
public MainWindow()
{
InitializeComponent();
}
private void Start(object sender, RoutedEventArgs e)
{
DateTime start = DateTime.UtcNow;
timer = new DispatcherTimer(new TimeSpan(0, 0, 0, 0, 1), DispatcherPriority.Normal, delegate
{
DateTime current = DateTime.UtcNow;
TimeSpan elapsed = current - start;
this.Show.Text = elapsed.TotalMinutes.ToString("00:00.000");
}, this.Dispatcher);
timer.Start();
}
private void Stop(object sender, RoutedEventArgs e)
{
timer.Stop();
}
}
它在单声道上工作正常(我认为,我尝试了类似的东西并且它有效),但它在Windows上不起作用。怎么了?
答案 0 :(得分:1)
如果操作时间超过一分钟,您不希望使用DateTime格式(因为"ss"
格式会在09
秒显示69
。
这可以正确调整漂移的经过时间。
DateTime start = DateTime.UtcNow;
timer = new DispatcherTimer(new TimeSpan(0, 0, 0, 0, 1), DispatcherPriority.Normal, delegate
{
DateTime current = DateTime.UtcNow;
TimeSpan elapsed = current - start;
this.Show.Text = elapsed.TotalSeconds.ToString ("00.000 seconds"); // a double converted to string.
}, this.Dispatcher);
编辑:
您的代码未显示您正在调用timer.Start ()
来实际启动计时器。
它也没有显示如何防止计时器被垃圾收集:this.elapsedtimer = timer;
编辑2:
TotalSeconds.ToString ("00.000 seconds")
使用Double.ToString的重载。