C # отмечает дату и формат - PullRequest
0 голосов
/ 05 августа 2011

Как я могу преобразовать тики в 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();
        }
    }

Он работал нормально на моно (я думаю, я пробовал что-то подобное, и это работало), но это не работает на окнах.Что не так?

1 Ответ

1 голос
/ 05 августа 2011

Вы не хотите использовать формат 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...