コード例 #1
0
        /// <summary>
        /// Sets the specified timezone on the date without converting the time
        /// </summary>
        /// <param name="dateTimeOffset"></param>
        /// <param name="timeZone"></param>
        /// <returns></returns>
        public static DateTimeOffset SpecifyTimeZone(DateTimeOffset dateTimeOffset, ITimeZoneEx timeZone)
        {
            if (timeZone == null)
            {
                throw new ArgumentNullException("timeZone");
            }

            // Treat the date as UTC
            var dateAsUtc = DateTime.SpecifyKind(dateTimeOffset.DateTime, DateTimeKind.Utc);

            // This is to find the correct offset
            var asLocal = timeZone.ConvertTime(dateAsUtc);

            return(new DateTimeOffset(DateTime.SpecifyKind(dateAsUtc, DateTimeKind.Unspecified), asLocal.Offset));
        }
コード例 #2
0
ファイル: ClockItem.cs プロジェクト: EdiWang/UWP-DateDiffer
        public ClockItem(string tzoneId)
        {
            _tz = TimeZoneService.FindSystemTimeZoneById(tzoneId);
            TimeZone = _tz.ToTimeZoneSelectItem();
            //TimerTask = new AsyncTimer(1000).WhenTick(i => OnOneSecondPassed()).StartAsync();

            var timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1) };
            timer.Tick += (sender, o) =>
            {
                var offset = _tz.ConvertTime(DateTime.Now);
                Time = offset.DateTime;
                OnPropertyChanged("Time");
            };

            timer.Start();
        }
コード例 #3
0
        public ClockItem(string tzoneId)
        {
            _tz      = TimeZoneService.FindSystemTimeZoneById(tzoneId);
            TimeZone = _tz.ToTimeZoneSelectItem();
            //TimerTask = new AsyncTimer(1000).WhenTick(i => OnOneSecondPassed()).StartAsync();

            var timer = new DispatcherTimer {
                Interval = TimeSpan.FromSeconds(1)
            };

            timer.Tick += (sender, o) =>
            {
                var offset = _tz.ConvertTime(DateTime.Now);
                Time = offset.DateTime;
                OnPropertyChanged("Time");
            };

            timer.Start();
        }
コード例 #4
0
        private void CalculateTime()
        {
            var dateTimeOffset = _timeZoneService.ConvertTime(DateTime.Now);

            Date = dateTimeOffset.DateTime + _timeShiftProvider.TimeShift;
        }
コード例 #5
0
 private DateTime CalculateTime(ITimeZoneEx timeService)
 {
     var dateTimeOffset = timeService.ConvertTime(DateTime.Now);
     return dateTimeOffset.DateTime + _timeShiftProvider.TimeShift;
 }
コード例 #6
0
        /// <summary>
        /// Sets the specified timezone on the date without converting the time
        /// </summary>
        /// <param name="dateTimeOffset"></param>
        /// <param name="timeZone"></param>
        /// <returns></returns>
        public static DateTimeOffset SpecifyTimeZone(DateTimeOffset dateTimeOffset, ITimeZoneEx timeZone)
        {
            if (timeZone == null)
                throw new ArgumentNullException("timeZone");

            // Treat the date as UTC
            var dateAsUtc = DateTime.SpecifyKind(dateTimeOffset.DateTime, DateTimeKind.Utc);

            // This is to find the correct offset
            var asLocal = timeZone.ConvertTime(dateAsUtc);

            return new DateTimeOffset(DateTime.SpecifyKind(dateAsUtc, DateTimeKind.Unspecified), asLocal.Offset);
        }