C#勾选到日期时间和格式

时间:2011-08-05 17:18:21

标签: c# datetime

如何将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上不起作用。怎么了?

1 个答案:

答案 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的重载。