簡體   English   中英

C#滴答日期時間和格式

[英]C# ticks to datetime and format

如何將刻度線轉換為日期時間並將其格式化為“ 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();
        }
    }

它在mono上正常工作(我想,我嘗試過類似的方法,並且可以工作),但是在Windows上卻無法工作。 怎么了?

如果該操作花費的時間超過一分鍾,則無論如何都不想使用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的此重載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM