[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Collapse]WPF Controls
  Prerequisites
 [Expand]What's Installed
 [Expand]Common Concepts
 [Expand]MVVM Framework
 [Collapse]Controls and Libraries
   Reporting
  [Expand]Data Grid
  [Expand]Ribbon, Bars and Menu
  [Expand]Charts Suite
  [Expand]Pivot Grid
  [Expand]Scheduler
  [Expand]Spreadsheet
  [Expand]Rich Text Editor
  [Expand]Tree List
  [Expand]Gauge Controls
  [Expand]Map Control
  [Expand]Layout Management
  [Expand]Windows Modern UI
  [Expand]Printing-Exporting
  [Expand]Data Editors
  [Expand]Navigation Controls
  [Expand]Spell Checker
  [Expand]Property Grid
  [Expand]PDF Viewer
  [Expand]TreeMap Control
  [Expand]Gantt Control
  [Expand]Diagram Control
  [Expand]Windows and Utility Controls
   Dialogs, Notifications and Panels
  [Collapse]Scheduler (legacy)
   [Expand]Overview
   [Expand]Getting Started
   [Collapse]Fundamentals
    [Expand]Scheduler Elements
    [Expand]Appointments
     Resources
    [Expand]Views
     Pop-up Menus
    [Expand]Data Binding
    [Expand]Mappings
    [Expand]Supported Formats
    [Expand]Styles and Templates
     Services
     Time Zones
    [Expand]Printing
     Product Class Structure
     Scheduling Basics
   [Expand]Visual Elements
   [Expand]Examples
 [Expand]Scaffolding Wizard
 [Expand]Localization
  Redistribution and Deployment
  Get More Help
 [Expand]API Reference
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

Time Zones

Note

You are viewing documentation for the legacy WPF Scheduler control. If you're starting a new project, we strongly recommend that you use a new control declared in the DevExpress.Xpf.Scheduling namespace. If you decide to upgrade an existing project in order to switch to the updated scheduler control, see the Migration Guidelines document.

This document describes the time zone support implemented in the Scheduler. It explains how the Scheduler calculates appointment start and end values for display and indicates the difference between the regular and "floating" appointments.

Expanded Time Zone Information

Time zone information is used to calculate start and end times for an appointment. The Scheduler uses the standard System.TimeZoneInfo objects of the .NET Framework to specify its time zone information.

The SchedulerStorageBase.TimeZoneId property specifies the time zone of the appointment start and end values contained in the appointment storage (operational time zone). By default, it is the same as the time zone of the host system. The Scheduler displays an appointment using the start and end values converted to the time zone specified by the SchedulerOptionsBehaviorBase.ClientTimeZoneId setting. By default, it is the same as the operational time zone of the SchedulerStorage.

When the scheduler is bound to a data source, the SchedulerStorage retrieves and stores DateTime data without conversion. So, if the database contains DateTime data in UTC, the host operates at Pacific Time and the client application is located in Eastern Time, you should set the SchedulerStorageBase.TimeZoneId property to "UTC" and the SchedulerOptionsBehaviorBase.ClientTimeZoneId should be set to the "Eastern Standard Time" or, more correctly, to the System.TimeZoneInfo.Local.Id value obtained at the client host.

Note

DST (daylight saving time) rules may be different for different years at the same time zone.

Expanded Time Ruler

You can display multiple Time Rulers to show time in different time zones. The Time Ruler exposes two properties for the time zone support. Use the TimeRuler.TimeZoneId property to specify the time zone for which time is displayed. The TimeRuler.UseClientTimeZone property specifies that the time zone of the Time ruler follows the time zone of the Scheduler.

Expanded Reminders

Reminder alert times are not translated when reminders are loaded into the SchedulerStorage from the data source. The reminder alerts are triggered by the SchedulerStorage using the SchedulerStorage time zone.

Expanded Daylight Saving Time

Appointment start and end time are automatically adjusted if Daylight Saving Time (DST) is in effect. If the appointment interval spans DST change, its visual appearance is based on UTC since Scheduler views do not allow discontinuous time scales. However, start and end time values are calculated considering DST rules.

Expanded Floating Appointments

The Scheduler supports the "floating" time zone for all-day appointments. "Floating" means that the time is independent of the client time zone. A typical example of a "floating" all-day appointment would be New Year's Day. It starts at midnight on January 1st in any time zone. Therefore, it does not start simultaneously throughout the world - it starts at different times, according to the time zone where the client is located.

All-day appointments (appointments with the Appointment.AllDay property set to true) are always treated as if they belong to a "floating" time zone.

However, to perform a centralized action (for example, to restart a server at a pilot factory, resulting in a break in connectivity between departments), the appointment should occur only once, at a different time in each applicable time zone. In this case, a regular appointment is used, not a “floating” appointment.

Note

When you programmatically assign Appointment.Start and Appointment.End times to an appointment, do not create the System.DateTime object via the constructor that specifies the System.DateTimeKind enumeration value. Although it helps to indicate whether the DateTime object specifies a local time or UTC in .NET, the Scheduler does not support this flag, and interprets the time incorrectly.

Is this topic helpful?​​​​​​​