Condividi tramite


TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Metodo

Definizione

Overload

Nome Descrizione
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)

Crea una nuova regola di regolazione per un determinato fuso orario.

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan)

Crea una nuova regola di regolazione per un determinato fuso orario.

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)

Origine:
TimeZoneInfo.AdjustmentRule.cs
Origine:
TimeZoneInfo.AdjustmentRule.cs
Origine:
TimeZoneInfo.AdjustmentRule.cs
Origine:
TimeZoneInfo.AdjustmentRule.cs
Origine:
TimeZoneInfo.AdjustmentRule.cs

Crea una nuova regola di regolazione per un determinato fuso orario.

public:
 static TimeZoneInfo::AdjustmentRule ^ CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo::TransitionTime daylightTransitionStart, TimeZoneInfo::TransitionTime daylightTransitionEnd);
public static TimeZoneInfo.AdjustmentRule CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo.TransitionTime daylightTransitionStart, TimeZoneInfo.TransitionTime daylightTransitionEnd);
static member CreateAdjustmentRule : DateTime * DateTime * TimeSpan * TimeZoneInfo.TransitionTime * TimeZoneInfo.TransitionTime -> TimeZoneInfo.AdjustmentRule
Public Shared Function CreateAdjustmentRule (dateStart As DateTime, dateEnd As DateTime, daylightDelta As TimeSpan, daylightTransitionStart As TimeZoneInfo.TransitionTime, daylightTransitionEnd As TimeZoneInfo.TransitionTime) As TimeZoneInfo.AdjustmentRule

Parametri

dateStart
DateTime

Data di validità della regola di rettifica. Se il valore del dateStart parametro è DateTime.MinValue.Date, si tratta della prima regola di regolazione in vigore per un fuso orario.

dateEnd
DateTime

Ultima data in cui è in vigore la regola di rettifica. Se il valore del dateEnd parametro è DateTime.MaxValue.Date, la regola di rettifica non ha una data di fine.

daylightDelta
TimeSpan

Modifica dell'ora risultante dalla rettifica. Questo valore viene aggiunto alla proprietà del BaseUtcOffset fuso orario per ottenere l'offset di luce legale corretto dall'ora UTC (Coordinated Universal Time). Questo valore può variare da -14 a 14.

daylightTransitionStart
TimeZoneInfo.TransitionTime

Oggetto che definisce l'inizio dell'ora legale.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

Oggetto che definisce la fine dell'ora legale.

Restituisce

Oggetto che rappresenta la nuova regola di regolazione.

Eccezioni

La Kind proprietà del dateStart parametro o dateEnd non è uguale a Unspecified.

oppure

Il daylightTransitionStart parametro è uguale al daylightTransitionEnd parametro .

oppure

Il dateStart parametro o dateEnd include un valore di ora del giorno.

dateEnd è precedente a dateStart.

oppure

daylightDelta è minore di -14 o maggiore di 14.

oppure

La Milliseconds proprietà del daylightDelta parametro non è uguale a 0.

oppure

La Ticks proprietà del daylightDelta parametro non è uguale a un numero intero di secondi.

Esempio

Nell'esempio seguente viene creato un fuso orario centrale alternativo e vengono definite tre regole di rettifica per i periodi 1976-1986, 1987-2006 e 2007 e successive. Queste regole vengono aggiunte a un oggetto generico List<T> i cui elementi vengono quindi copiati in una TimeZoneInfo.AdjustmentRule matrice. Questa matrice viene quindi usata nella chiamata al TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) metodo .

// Create alternate Central Standard Time to include historical time zone information
//
// Declare necessary TimeZoneInfo.AdjustmentRule objects for time zone
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment;
List<TimeZoneInfo.AdjustmentRule> adjustmentList = new List<TimeZoneInfo.AdjustmentRule>();
// Declare transition time variables to hold transition time information
TimeZoneInfo.TransitionTime transitionRuleStart, transitionRuleEnd;

// Define end rule (for 1976-2006)
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 10, 5, DayOfWeek.Sunday);
// Define rule (1976-1986)
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 04, 05, DayOfWeek.Sunday);
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1976, 1, 1), new DateTime(1986, 12, 31), delta, transitionRuleStart, transitionRuleEnd);
adjustmentList.Add(adjustment);
// Define rule (1987-2006)  
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 04, 01, DayOfWeek.Sunday);
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1987, 1, 1), new DateTime(2006, 12, 31), delta, transitionRuleStart, transitionRuleEnd);
adjustmentList.Add(adjustment);
// Define rule (2007- )  
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 03, 02, DayOfWeek.Sunday);
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 11, 01, DayOfWeek.Sunday);
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(2007, 01, 01), DateTime.MaxValue.Date, delta, transitionRuleStart, transitionRuleEnd);
adjustmentList.Add(adjustment);
              
// Create custom U.S. Central Standard Time zone         
TimeZoneInfo.CreateCustomTimeZone("Central Standard Time", new TimeSpan(-6, 0, 0), 
                "(GMT-06:00) Central Time (US Only)", "Central Standard Time", 
                "Central Daylight Time", adjustmentList.ToArray());
// Create alternate Central Standard Time to include historical time zone information
let delta = TimeSpan(1, 0, 0)
let adjustmentList = ResizeArray()

// Define end rule (for 1976-2006)
let transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 10, 5, DayOfWeek.Sunday)
// Define rule (1976-1986)
let transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 04, 05, DayOfWeek.Sunday)
TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1976, 1, 1), DateTime(1986, 12, 31), delta, transitionRuleStart, transitionRuleEnd)
|> adjustmentList.Add
// Define rule (1987-2006)  
let transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 04, 01, DayOfWeek.Sunday)
TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1987, 1, 1), DateTime(2006, 12, 31), delta, transitionRuleStart, transitionRuleEnd)
|> adjustmentList.Add
// Define rule (2007- )  
let transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 03, 02, DayOfWeek.Sunday)
let transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 11, 01, DayOfWeek.Sunday)
TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(2007, 01, 01), DateTime.MaxValue.Date, delta, transitionRuleStart, transitionRuleEnd)
|> adjustmentList.Add
            
// Create custom U.S. Central Standard Time zone         
TimeZoneInfo.CreateCustomTimeZone("Central Standard Time", TimeSpan(-6, 0, 0), 
                                  "(GMT-06:00) Central Time (US Only)", "Central Standard Time", 
                                  "Central Daylight Time", adjustmentList.ToArray())
' Create alternate Central Standard Time to include historical time zone information
'
' Declare necessary TimeZoneInfo.AdjustmentRule objects for time zone
Dim delta As New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule
Dim adjustmentList As New List(Of TimeZoneInfo.AdjustmentRule)
' Declare transition time variables to hold transition time information
Dim transitionRuleStart, transitionRuleEnd As TimeZoneInfo.TransitionTime

' Define end rule (for 1976-2006)
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#02:00:00AM#, 10, 5, DayOfWeek.Sunday)
' Define rule (1976-1986)
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 04, 05, DayOfWeek.Sunday)
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#01/01/1976#, #12/31/1986#, delta, transitionRuleStart, transitionRuleEnd)
adjustmentList.Add(adjustment)
' Define rule (1987-2006)  
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 04, 01, DayOfWeek.Sunday)
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#01/01/1987#, #12/31/2006#, delta, transitionRuleStart, transitionRuleEnd)
adjustmentList.Add(adjustment)
' Define rule (2007- )  
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 03, 02, DayOfWeek.Sunday)
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 11, 01, DayOfWeek.Sunday)
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#01/01/2007#, Date.MaxValue.Date, delta, transitionRuleStart, transitionRuleEnd)
adjustmentList.Add(adjustment)
              
' Create custom U.S. Central Standard Time Zone
TimeZoneInfo.CreateCustomTimeZone("Central Standard Time", New TimeSpan(-6, 0, 0), _
                "(GMT-06:00) Central Time (US Only)", "Central Standard Time", _
                "Central Daylight Time", adjustmentList.ToArray())

Commenti

È possibile usare questo metodo per creare una o più regole di regolazione per un fuso orario personalizzato. Una matrice degli TimeZoneInfo.AdjustmentRule oggetti restituiti dalle chiamate a questo metodo può quindi essere passata come adjustmentRules parametro a due overload del CreateCustomTimeZone metodo . Nell'esempio viene illustrata questa procedura.

Annotazioni

Il CreateAdjustmentRule metodo può essere utilizzato solo per definire una regola di regolazione per un nuovo fuso orario. Non può essere utilizzata per modificare una regola di regolazione per un fuso orario esistente.

I dateStart parametri e dateEnd devono essere valori di data senza un componente di ora o viene generata un'eccezione ArgumentException . Il componente ora può essere rimosso recuperando un DateTime valore dalla proprietà di Date data e ora, come illustrato nelle istruzioni seguenti:

DateTime.MinValue.Date
DateTime.MaxValue.Date
DateTime.Now.Date
dateVariable.Date

Anche la KinddateStart proprietà dei parametri e dateEnd deve essere DateTimeKind.Unspecified.

Il valore del daylightDelta parametro può variare da -14 a 14. Anche la daylightDelta somma del parametro e del baseUtcOffset parametro utilizzato nella chiamata al TimeZoneInfo.CreateCustomTimeZone metodo deve variare da -14 a 14 o viene generata un'eccezione InvalidTimeZoneException .

Annotazioni

Il daylightDelta parametro definisce la differenza tra l'ora solare di un fuso orario e l'ora legale. Non è progettato per definire la differenza di ora solare del fuso orario rispetto all'ora UTC (Coordinated Universal Time). La TimeZoneInfo classe presuppone che l'offset dall'ora UTC sia costante per tutta la durata del fuso orario. Per riflettere una modifica dell'offset di un fuso orario rispetto all'ora UTC che non è causata dall'applicazione di una regola di regolazione, è necessario utilizzare il CreateCustomTimeZone metodo per creare un nuovo fuso orario personalizzato.

Si applica a

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan)

Origine:
TimeZoneInfo.AdjustmentRule.cs
Origine:
TimeZoneInfo.AdjustmentRule.cs
Origine:
TimeZoneInfo.AdjustmentRule.cs
Origine:
TimeZoneInfo.AdjustmentRule.cs
Origine:
TimeZoneInfo.AdjustmentRule.cs

Crea una nuova regola di regolazione per un determinato fuso orario.

public:
 static TimeZoneInfo::AdjustmentRule ^ CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo::TransitionTime daylightTransitionStart, TimeZoneInfo::TransitionTime daylightTransitionEnd, TimeSpan baseUtcOffsetDelta);
public static TimeZoneInfo.AdjustmentRule CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo.TransitionTime daylightTransitionStart, TimeZoneInfo.TransitionTime daylightTransitionEnd, TimeSpan baseUtcOffsetDelta);
static member CreateAdjustmentRule : DateTime * DateTime * TimeSpan * TimeZoneInfo.TransitionTime * TimeZoneInfo.TransitionTime * TimeSpan -> TimeZoneInfo.AdjustmentRule
Public Shared Function CreateAdjustmentRule (dateStart As DateTime, dateEnd As DateTime, daylightDelta As TimeSpan, daylightTransitionStart As TimeZoneInfo.TransitionTime, daylightTransitionEnd As TimeZoneInfo.TransitionTime, baseUtcOffsetDelta As TimeSpan) As TimeZoneInfo.AdjustmentRule

Parametri

dateStart
DateTime

Data di validità della regola di rettifica. Se il valore è DateTime.MinValue.Date, si tratta della prima regola di rettifica in vigore per un fuso orario.

dateEnd
DateTime

Ultima data in cui è in vigore la regola di rettifica. Se il valore è DateTime.MaxValue.Date, la regola di rettifica non ha una data di fine.

daylightDelta
TimeSpan

Modifica dell'ora risultante dalla rettifica. Questo valore viene aggiunto alle proprietà e BaseUtcOffsetDelta del BaseUtcOffset fuso orario per ottenere l'offset di luce legale corretto dall'ora UTC (Coordinated Universal Time). Questo valore può variare da -14 a 14.

daylightTransitionStart
TimeZoneInfo.TransitionTime

Inizio dell'ora legale.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

Fine dell'ora legale.

baseUtcOffsetDelta
TimeSpan

Differenza di ora con l'offset UTC di base per il fuso orario durante il periodo di regolazione della regola.

Restituisce

Nuova regola di regolazione.

Si applica a