TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.