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
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime) |
Crea una nuova regola di rettifica per un fuso orario specifico. |
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan) |
Crea una nuova regola di rettifica per un fuso orario specifico. |
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)
Crea una nuova regola di rettifica per un fuso orario specifico.
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 parametro dateStart
è DateTime.MinValue.Date
, questa è la prima regola di rettifica valida per un fuso orario.
- dateEnd
- DateTime
Ultima data di validità della regola di rettifica. Se il valore del parametro dateEnd
è DateTime.MaxValue.Date
, la regola di rettifica non ha una data di fine.
- daylightDelta
- TimeSpan
Cambiamento di ora risultante dalla rettifica. Questo valore viene aggiunto alla proprietà BaseUtcOffset del fuso orario per ottenere l'offset corretto dell'ora legale rispetto al fuso orario UTC (Coordinated Universal Time). Questo valore può andare 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 rettifica.
Eccezioni
La proprietà Kind del parametro dateStart
o dateEnd
non è uguale a Unspecified.
-oppure-
Il parametro daylightTransitionStart
è uguale al parametro daylightTransitionEnd
.
-oppure-
Il parametro dateStart
o dateEnd
include un valore relativo a un'ora del giorno.
dateEnd
è precedente a dateStart
.
-oppure-
daylightDelta
è minore di -14 o maggiore di 14.
-oppure-
La proprietà Milliseconds del parametro daylightDelta
non è uguale a 0.
-oppure-
La proprietà Ticks del parametro daylightDelta
non è uguale a un numero intero di secondi.
Esempio
L'esempio seguente crea un fuso orario centrale alternativo e definisce tre regole di regolazione per i periodi 1976-1986, 1987-2006 e oltre. 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. L'esempio illustra questa procedura.
Nota
Il CreateAdjustmentRule metodo può essere usato solo per definire una regola di regolazione per un nuovo fuso orario. Non può essere usato 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 generato un ArgumentException oggetto . Il componente ora può essere rimosso recuperando un DateTime valore dalla proprietà data e ora Date , come illustrato nelle istruzioni seguenti:
DateTime.MinValue.Date
DateTime.MaxValue.Date
DateTime.Now.Date
dateVariable.Date
La Kind proprietà dei dateStart
parametri e dateEnd
deve essere DateTimeKind.Unspecifiedanche .
Il valore del daylightDelta
parametro può essere compreso tra -14 e 14. La somma del parametro e del daylightDelta
baseUtcOffset
parametro usato nella chiamata al TimeZoneInfo.CreateCustomTimeZone metodo deve anche essere compreso tra -14 e 14 o viene generata un'eccezione InvalidTimeZoneException .
Nota
Il daylightDelta
parametro definisce la differenza tra l'ora solare del fuso orario e l'ora legale. Non è destinato a definire l'offset di ora standard del fuso orario dall'ora UTC (Coordinated Universal Time). La TimeZoneInfo classe presuppone che questo offset da UTC sia costante durante la durata del fuso orario. Per riflettere una modifica dell'offset del fuso orario da UTC non causato dall'applicazione di una regola di regolazione, è necessario usare il CreateCustomTimeZone metodo per creare un nuovo fuso orario personalizzato.
Si applica a
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan)
Crea una nuova regola di rettifica per un fuso orario specifico.
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
, questa è la prima regola di regolazione in vigore per un fuso orario.
- dateEnd
- DateTime
Ultima data di validità della regola di rettifica. Se il valore è DateTime.MaxValue.Date
, la regola di regolazione non ha una data di fine.
- daylightDelta
- TimeSpan
Cambiamento di ora risultante dalla rettifica. Questo valore viene aggiunto alle proprietà e BaseUtcOffsetDelta del fuso orario per ottenere l'offset legale corretto dall'ora BaseUtcOffset UTC (Coordinated Universal Time). Questo valore può andare da -14 a 14.
- daylightTransitionStart
- TimeZoneInfo.TransitionTime
Inizio dell'ora legale.
- daylightTransitionEnd
- TimeZoneInfo.TransitionTime
Fine dell'ora legale.
- baseUtcOffsetDelta
- TimeSpan
Differenza di tempo con l'offset UTC di base per il fuso orario durante il periodo di regola di regolazione.
Restituisce
Nuova regola di regolazione.