Compartilhar via


DateTime Construtores

Definição

Inicializa uma nova instância da estrutura DateTime.

Sobrecargas

DateTime(Int64)

Inicializa uma nova instância da estrutura DateTime para um número especificado de tiques.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar)

Inicializa uma nova instância da estrutura DateTime com ano, mês, dia, hora, minuto, segundo, milissegundo e UTC (Tempo Universal Coordenado) ou hora local especificados para o calendário especificado.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)

Inicializa uma nova instância da estrutura DateTime com ano, mês, dia, hora, minuto, segundo, milissegundo e UTC (Tempo Universal Coordenado) ou hora local especificados para o calendário especificado.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind)

Inicializa uma nova instância da estrutura DateTime com ano, mês, dia, hora, minuto, segundo, milissegundo e UTC (Tempo Universal Coordenado) ou hora local especificados para o calendário especificado.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32)

Inicializa uma nova instância da estrutura DateTime com ano, mês, dia, hora, minuto, segundo, milissegundo e UTC (Tempo Universal Coordenado) ou hora local especificados para o calendário especificado.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar)

Inicializa uma nova instância da estrutura DateTime para o ano, mês, dia, hora, minuto, segundo e milissegundo especificados para o calendário especificado.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)

Inicializa uma nova instância da estrutura DateTime com o ano, mês, dia, hora, minuto, segundo, milissegundo e UTC (Tempo Universal Coordenado) ou hora local especificados.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32)

Inicializa uma nova instância da estrutura DateTime para o ano, mês, dia, hora, minuto, segundo e milissegundo especificados.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind)

Inicializa uma nova instância da estrutura DateTime com ano, mês, dia, hora, minuto, segundo, milissegundo e UTC (Tempo Universal Coordenado) ou hora local especificados para o calendário especificado.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)

Inicializa uma nova instância da estrutura DateTime para o ano, o mês, o dia, a hora, o minuto, o segundo e o UTC (Tempo Universal Coordenado) especificados ou para a hora local.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32)

Inicializa uma nova instância da estrutura DateTime para o ano, mês, dia, hora, minuto e segundo especificados.

DateTime(Int32, Int32, Int32, Calendar)

Inicializa uma nova instância da estrutura DateTime para o ano, o mês e o dia especificados do calendário especificado.

DateTime(Int32, Int32, Int32)

Inicializa uma nova instância da estrutura DateTime para o ano, o mês e o dia especificados.

DateTime(DateOnly, TimeOnly, DateTimeKind)

Inicializa uma nova instância da DateTime estrutura para o especificado DateOnly e TimeOnly respeitando o especificado DateTimeKind.

DateTime(Int64, DateTimeKind)

Inicializa uma nova instância da estrutura DateTime para o número de tiques especificado e para o UTC (Tempo Universal Coordenado) ou para a hora local.

DateTime(DateOnly, TimeOnly)

Inicializa uma nova instância da DateTime estrutura para o especificado DateOnly e TimeOnly. A nova instância terá o Unspecified tipo .

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar)

Inicializa uma nova instância da estrutura DateTime para o ano, mês, dia, hora, minuto e segundo especificados para o calendário especificado.

DateTime(Int64)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime para um número especificado de tiques.

public:
 DateTime(long ticks);
public DateTime (long ticks);
new DateTime : int64 -> DateTime
Public Sub New (ticks As Long)

Parâmetros

ticks
Int64

Uma data e hora expressada no número de intervalos de 100 nanossegundos decorridos desde 1º de janeiro, 0001 em 00:00:00.000 no calendário gregoriano.

Exceções

Exemplos

O exemplo a seguir demonstra um dos DateTime construtores.

// This example demonstrates the DateTime(Int64) constructor.
using namespace System;
using namespace System::Globalization;
int main()
{
   
   // Instead of using the implicit, default "G" date and time format string, we 
   // use a custom format string that aligns the results and inserts leading zeroes.
   String^ format = "{0}) The {1} date and time is {2:MM/dd/yyyy hh:mm:ss tt}";
   
   // Create a DateTime for the maximum date and time using ticks.
   DateTime dt1 = DateTime(DateTime::MaxValue.Ticks);
   
   // Create a DateTime for the minimum date and time using ticks.
   DateTime dt2 = DateTime(DateTime::MinValue.Ticks);
   
   // Create a custom DateTime for 7/28/1979 at 10:35:05 PM using a 
   // calendar based on the "en-US" culture, and ticks. 
   Int64 ticks = DateTime(1979,07,28,22,35,5,(gcnew CultureInfo( "en-US",false ))->Calendar).Ticks;
   DateTime dt3 = DateTime(ticks);
   Console::WriteLine( format, 1, "maximum", dt1 );
   Console::WriteLine( format, 2, "minimum", dt2 );
   Console::WriteLine( format, 3, "custom ", dt3 );
   Console::WriteLine( "\nThe custom date and time is created from {0:N0} ticks.", ticks );
}

/*
This example produces the following results:

1) The maximum date and time is 12/31/9999 11:59:59 PM
2) The minimum date and time is 01/01/0001 12:00:00 AM
3) The custom  date and time is 07/28/1979 10:35:05 PM

The custom date and time is created from 624,376,461,050,000,000 ticks.

*/
// This example demonstrates the DateTime(Int64) constructor.
open System
open System.Globalization

// Create a DateTime for the maximum date and time using ticks.
let dt1 = DateTime DateTime.MaxValue.Ticks

// Create a DateTime for the minimum date and time using ticks.
let dt2 = DateTime DateTime.MinValue.Ticks

// Create a custom DateTime for 7/28/1979 at 10:35:05 PM using a
// calendar based on the "en-US" culture, and ticks.
let ticks = DateTime(1979, 07, 28, 22, 35, 5, CultureInfo("en-US", false).Calendar).Ticks
let dt3 = DateTime ticks

printfn $"""1) The maximum date and time is {dt1.ToString "MM-dd/yyyy hh:mm:ss tt"}"""
printfn $"""2) The minimum date and time is {dt2.ToString "MM/dd/yyyy hh:mm:ss tt"}"""
printfn $"""3) The custom  date and time is {dt3.ToString "MM/dd/yyyy hh:mm:ss tt"}"""

printfn $"\nThe custom date and time is created from {ticks:N0} ticks."

// This example produces the following results:
//
// 1) The maximum date and time is 12/31/9999 11:59:59 PM
// 2) The minimum date and time is 01/01/0001 12:00:00 AM
// 3) The custom  date and time is 07/28/1979 10:35:05 PM
//
// The custom date and time is created from 624,376,461,050,000,000 ticks.
// This example demonstrates the DateTime(Int64) constructor.
using System;
using System.Globalization;

class Sample
{
    public static void Main()
    {
// Instead of using the implicit, default "G" date and time format string, we
// use a custom format string that aligns the results and inserts leading zeroes.
    string format = "{0}) The {1} date and time is {2:MM/dd/yyyy hh:mm:ss tt}";

// Create a DateTime for the maximum date and time using ticks.
    DateTime dt1 = new DateTime(DateTime.MaxValue.Ticks);

// Create a DateTime for the minimum date and time using ticks.
    DateTime dt2 = new DateTime(DateTime.MinValue.Ticks);

// Create a custom DateTime for 7/28/1979 at 10:35:05 PM using a
// calendar based on the "en-US" culture, and ticks.
    long ticks = new DateTime(1979, 07, 28, 22, 35, 5,
    new CultureInfo("en-US", false).Calendar).Ticks;
    DateTime dt3 = new DateTime(ticks);

    Console.WriteLine(format, 1, "maximum", dt1);
    Console.WriteLine(format, 2, "minimum", dt2);
    Console.WriteLine(format, 3, "custom ", dt3);
    Console.WriteLine("\nThe custom date and time is created from {0:N0} ticks.", ticks);
    }
}
/*
This example produces the following results:

1) The maximum date and time is 12/31/9999 11:59:59 PM
2) The minimum date and time is 01/01/0001 12:00:00 AM
3) The custom  date and time is 07/28/1979 10:35:05 PM

The custom date and time is created from 624,376,461,050,000,000 ticks.

*/
' This example demonstrates the DateTime(Int64) constructor.
Imports System.Globalization

Class Sample
   Public Shared Sub Main()
      ' Instead of using the implicit, default "G" date and time format string, we 
      ' use a custom format string that aligns the results and inserts leading zeroes.
      Dim format As String = "{0}) The {1} date and time is {2:MM/dd/yyyy hh:mm:ss tt}"
      
      ' Create a DateTime for the maximum date and time using ticks.
      Dim dt1 As New DateTime(DateTime.MaxValue.Ticks)
      
      ' Create a DateTime for the minimum date and time using ticks.
      Dim dt2 As New DateTime(DateTime.MinValue.Ticks)
      
      ' Create a custom DateTime for 7/28/1979 at 10:35:05 PM using a 
      ' calendar based on the "en-US" culture, and ticks. 
      Dim ticks As Long = New DateTime(1979, 7, 28, 22, 35, 5, _
                                       New CultureInfo("en-US", False).Calendar).Ticks
      Dim dt3 As New DateTime(ticks)
      
      Console.WriteLine(format, 1, "maximum", dt1)
      Console.WriteLine(format, 2, "minimum", dt2)
      Console.WriteLine(format, 3, "custom ", dt3)
      Console.WriteLine(vbCrLf & "The custom date and time is created from {0:N0} ticks.", ticks)
   End Sub
End Class
'
'This example produces the following results:
'
'1) The maximum date and time is 12/31/9999 11:59:59 PM
'2) The minimum date and time is 01/01/0001 12:00:00 AM
'3) The custom  date and time is 07/28/1979 10:35:05 PM
'
'The custom date and time is created from 624,376,461,050,000,000 ticks.
'

Comentários

A propriedade Kind é inicializada com Unspecified.

Para aplicativos nos quais a portabilidade de dados de data e hora ou um grau limitado de reconhecimento do fuso horário seja importante, é possível usar o construtor DateTimeOffset correspondente.

Aplica-se a

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime com ano, mês, dia, hora, minuto, segundo, milissegundo e UTC (Tempo Universal Coordenado) ou hora local especificados para o calendário especificado.

public:
 DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, System::Globalization::Calendar ^ calendar);
public DateTime (int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, System.Globalization.Calendar calendar);
new DateTime : int * int * int * int * int * int * int * int * System.Globalization.Calendar -> DateTime
Public Sub New (year As Integer, month As Integer, day As Integer, hour As Integer, minute As Integer, second As Integer, millisecond As Integer, microsecond As Integer, calendar As Calendar)

Parâmetros

year
Int32

O ano (de 1 até o número de anos em calendar).

month
Int32

O mês (1 até o número de meses em calendar).

day
Int32

O dia (1 até o número de dias em month).

hour
Int32

As horas (de 0 a 23).

minute
Int32

Os minutos (de 0 a 59).

second
Int32

Os segundos (de 0 a 59).

millisecond
Int32

Os milissegundos (de 0 a 999).

microsecond
Int32

Os microssegundos (0 a 999).

calendar
Calendar

O calendário usado para interpretar year, month e day.

Exceções

calendar é null

year não está no intervalo suportado por calendar.

- ou -

month é menor que 1 ou maior que o número de meses em calendar.

- ou -

day é menor que 1 ou maior que o número de dias em month.

- ou -

hour é menor que 0 ou maior que 23.

- ou -

minute é menor que 0 ou maior que 59.

- ou -

second é menor que 0 ou maior que 59.

- ou -

millisecond é menor que 0 ou maior que 999.

- ou -

microsecond é menor que 0 ou maior que 999.

Comentários

Os valores permitidos para yearparâmetros , monthe day dependem do calendar parâmetro . Uma exceção será lançada se a data e hora especificada não puder ser expressada usando-se calendar.

Para aplicativos nos quais a portabilidade de dados de data e hora ou um grau limitado de reconhecimento do fuso horário seja importante, é possível usar o construtor DateTimeOffset correspondente.

Aplica-se a

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime com ano, mês, dia, hora, minuto, segundo, milissegundo e UTC (Tempo Universal Coordenado) ou hora local especificados para o calendário especificado.

public:
 DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, DateTimeKind kind);
public DateTime (int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, DateTimeKind kind);
new DateTime : int * int * int * int * int * int * int * int * DateTimeKind -> DateTime
Public Sub New (year As Integer, month As Integer, day As Integer, hour As Integer, minute As Integer, second As Integer, millisecond As Integer, microsecond As Integer, kind As DateTimeKind)

Parâmetros

year
Int32

O ano (de 1 a 9999).

month
Int32

O mês (de 1 a 12).

day
Int32

O dia (1 até o número de dias em month).

hour
Int32

As horas (de 0 a 23).

minute
Int32

Os minutos (de 0 a 59).

second
Int32

Os segundos (de 0 a 59).

millisecond
Int32

Os milissegundos (de 0 a 999).

microsecond
Int32

Os microssegundos (0 a 999).

kind
DateTimeKind

Um dos valores de enumeração que indica se year, month, day, hour, minute, second e millisecond especificam uma hora local, o UTC (Tempo Universal Coordenado) ou nenhum dos dois.

Exceções

year é menor que 1 ou maior que 9999.

- ou -

month é menor que 1 ou maior que 12.

- ou -

day é menor que 1 ou maior que o número de dias em month.

- ou -

hour é menor que 0 ou maior que 23.

- ou -

minute é menor que 0 ou maior que 59.

- ou -

second é menor que 0 ou maior que 59.

- ou -

millisecond é menor que 0 ou maior que 999.

- ou -

microsecond é menor que 0 ou maior que 999.

kind não é um dos valores DateTimeKind.

Comentários

Este construtor interpreta yeare monthday como um ano, mês e dia no calendário gregoriano. Para criar uma instância de um DateTime valor usando o ano, mês e dia em outro calendário, chame o DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) construtor .

Para aplicativos nos quais a portabilidade de dados de data e hora ou um grau limitado de reconhecimento do fuso horário seja importante, é possível usar o construtor DateTimeOffset correspondente.

Aplica-se a

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime com ano, mês, dia, hora, minuto, segundo, milissegundo e UTC (Tempo Universal Coordenado) ou hora local especificados para o calendário especificado.

public:
 DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, System::Globalization::Calendar ^ calendar, DateTimeKind kind);
public DateTime (int year, int month, int day, int hour, int minute, int second, int millisecond, System.Globalization.Calendar calendar, DateTimeKind kind);
new DateTime : int * int * int * int * int * int * int * System.Globalization.Calendar * DateTimeKind -> DateTime
Public Sub New (year As Integer, month As Integer, day As Integer, hour As Integer, minute As Integer, second As Integer, millisecond As Integer, calendar As Calendar, kind As DateTimeKind)

Parâmetros

year
Int32

O ano (de 1 até o número de anos em calendar).

month
Int32

O mês (1 até o número de meses em calendar).

day
Int32

O dia (1 até o número de dias em month).

hour
Int32

As horas (de 0 a 23).

minute
Int32

Os minutos (de 0 a 59).

second
Int32

Os segundos (de 0 a 59).

millisecond
Int32

Os milissegundos (de 0 a 999).

calendar
Calendar

O calendário usado para interpretar year, month e day.

kind
DateTimeKind

Um dos valores de enumeração que indica se year, month, day, hour, minute, second e millisecond especificam uma hora local, o UTC (Tempo Universal Coordenado) ou nenhum dos dois.

Exceções

calendar é null.

year não está no intervalo suportado por calendar.

- ou -

month é menor que 1 ou maior que o número de meses em calendar.

- ou -

day é menor que 1 ou maior que o número de dias em month.

- ou -

hour é menor que 0 ou maior que 23.

- ou -

minute é menor que 0 ou maior que 59.

- ou -

second é menor que 0 ou maior que 59.

- ou -

millisecond é menor que 0 ou maior que 999.

kind não é um dos valores DateTimeKind.

Exemplos

O exemplo a seguir chama o DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) construtor duas vezes para instanciar dois DateTime valores. A primeira chamada cria uma instância de um valor DateTime usando-se um objeto PersianCalendar. Como o calendário persa não pode ser designado como o calendário padrão para uma cultura, a exibição de uma data usando-se o calendário persa requer chamadas individuais para os métodos PersianCalendar.GetMonth, PersianCalendar.GetDayOfMonth e PersianCalendar.GetYear. A segunda chamada para o construtor cria uma instância de um valor DateTime usando-se um objeto HijriCalendar. O exemplo altera a cultura atual para árabe (Síria) e muda o calendário padrão da cultura atual para o calendário islâmico. Como Hijri é o calendário padrão da cultura atual, o método Console.WriteLine usa-o para formatar a data. Quando a cultura atual anterior (que é inglês (Estados Unidos) nesse caso) é restaurada, o método Console.WriteLine usa o calendário gregoriano padrão da cultura atual para formatar a data.

using System;
using System.Globalization;
using System.Text.RegularExpressions;
using System.Threading;

public class Example
{
   public static void Main()
   {
      Console.WriteLine("Using the Persian Calendar:");
      PersianCalendar persian = new PersianCalendar();
      DateTime date1 = new DateTime(1389, 5, 27, 16, 32, 18, 500,
                                    persian, DateTimeKind.Local);
      Console.WriteLine("{0:M/dd/yyyy h:mm:ss.fff tt} {1}", date1, date1.Kind);
      Console.WriteLine("{0}/{1}/{2} {3}{8}{4:D2}{8}{5:D2}.{6:G3} {7}\n",
                                       persian.GetMonth(date1),
                                       persian.GetDayOfMonth(date1),
                                       persian.GetYear(date1),
                                       persian.GetHour(date1),
                                       persian.GetMinute(date1),
                                       persian.GetSecond(date1),
                                       persian.GetMilliseconds(date1),
                                       date1.Kind,
                                       DateTimeFormatInfo.CurrentInfo.TimeSeparator);

      Console.WriteLine("Using the Hijri Calendar:");
      // Get current culture so it can later be restored.
      CultureInfo dftCulture = Thread.CurrentThread.CurrentCulture;

      // Define strings for use in composite formatting.
      string dFormat;
      string fmtString;
      // Define Hijri calendar.
      HijriCalendar hijri = new HijriCalendar();
      // Make ar-SY the current culture and Hijri the current calendar.
      Thread.CurrentThread.CurrentCulture = new CultureInfo("ar-SY");
      CultureInfo current = CultureInfo.CurrentCulture;
      current.DateTimeFormat.Calendar = hijri;
      dFormat = current.DateTimeFormat.ShortDatePattern;
      // Ensure year is displayed as four digits.
      dFormat = Regex.Replace(dFormat, "/yy$", "/yyyy") + " H:mm:ss.fff";
      fmtString = "{0} culture using the {1} calendar: {2:" + dFormat + "} {3}";
      DateTime date2 = new DateTime(1431, 9, 9, 16, 32, 18, 500,
                                    hijri, DateTimeKind.Local);
      Console.WriteLine(fmtString, current, GetCalendarName(hijri),
                        date2, date2.Kind);

      // Restore previous culture.
      Thread.CurrentThread.CurrentCulture = dftCulture;
      dFormat = DateTimeFormatInfo.CurrentInfo.ShortDatePattern +" H:mm:ss.fff";
      fmtString = "{0} culture using the {1} calendar: {2:" + dFormat + "} {3}";
      Console.WriteLine(fmtString,
                        CultureInfo.CurrentCulture,
                        GetCalendarName(CultureInfo.CurrentCulture.Calendar),
                        date2, date2.Kind);
   }

   private static string GetCalendarName(Calendar cal)
   {
      return Regex.Match(cal.ToString(), "\\.(\\w+)Calendar").Groups[1].Value;
   }
}
// The example displays the following output:
//    Using the Persian Calendar:
//    8/18/2010 4:32:18.500 PM Local
//    5/27/1389 16:32:18.500 Local
//
//    Using the Hijri Calendar:
//    ar-SY culture using the Hijri calendar: 09/09/1431 16:32:18.500 Local
//    en-US culture using the Gregorian calendar: 8/18/2010 16:32:18.500 Local
open System
open System.Globalization
open System.Text.RegularExpressions
open System.Threading

let getCalendarName (cal: Calendar) =
      Regex.Match(string cal, "\\.(\\w+)Calendar").Groups[1].Value

printfn "Using the Persian Calendar:"
let persian = PersianCalendar()
let date1 = DateTime(1389, 5, 27, 16, 32, 18, 500, persian, DateTimeKind.Local)
printfn $"""{date1.ToString "M/dd/yyyy h:mm:ss.fff tt"} {date1.Kind}"""
let sep = DateTimeFormatInfo.CurrentInfo.TimeSeparator
printfn $"{persian.GetMonth date1}/{persian.GetDayOfMonth date1}/{persian.GetYear date1} {persian.GetHour date1}{sep}{persian.GetMinute date1:D2}{sep}{persian.GetSecond date1:D2}.{persian.GetMilliseconds date1:G3} {date1.Kind}\n"

printfn "Using the Hijri Calendar:"
// Get current culture so it can later be restored.
let dftCulture = Thread.CurrentThread.CurrentCulture

// Define Hijri calendar.
let hijri = HijriCalendar()
// Make ar-SY the current culture and Hijri the current calendar.
Thread.CurrentThread.CurrentCulture <- CultureInfo "ar-SY"
let current = CultureInfo.CurrentCulture
current.DateTimeFormat.Calendar <- hijri

let dFormat = 
    let dFormat = current.DateTimeFormat.ShortDatePattern
    // Ensure year is displayed as four digits.
    Regex.Replace(dFormat, "/yy$", "/yyyy") + " H:mm:ss.fff"

let fmtString = "{0} culture using the {1} calendar: {2:" + dFormat + "} {3}"
let date2 = DateTime(1431, 9, 9, 16, 32, 18, 500, hijri, DateTimeKind.Local)
Console.WriteLine(fmtString, current, getCalendarName hijri, date2, date2.Kind)

// Restore previous culture.
Thread.CurrentThread.CurrentCulture <- dftCulture
let dFormat2 = DateTimeFormatInfo.CurrentInfo.ShortDatePattern + " H:mm:ss.fff"
let fmtString2 = "{0} culture using the {1} calendar: {2:" + dFormat2 + "} {3}"
Console.WriteLine(fmtString2, CultureInfo.CurrentCulture, getCalendarName CultureInfo.CurrentCulture.Calendar, date2, date2.Kind)


// The example displays the following output:
//    Using the Persian Calendar:
//    8/18/2010 4:32:18.500 PM Local
//    5/27/1389 16:32:18.500 Local
//
//    Using the Hijri Calendar:
//    ar-SY culture using the Hijri calendar: 09/09/1431 16:32:18.500 Local
//    en-US culture using the Gregorian calendar: 8/18/2010 16:32:18.500 Local
Imports System.Globalization
Imports System.Text.RegularExpressions
Imports System.Threading

Module Example
   Public Sub Main()
      Console.WriteLine("Using the Persian Calendar:")
      Dim persian As New PersianCalendar()
      Dim date1 As New Date(1389, 5, 27, 16, 32, 18, 500, _
                            persian, DateTimeKind.Local)
      Console.WriteLine("{0:M/dd/yyyy h:mm:ss.fff tt} {1}", date1, date1.Kind)
      Console.WriteLine("{0}/{1}/{2} {3}{8}{4:D2}{8}{5:D2}.{6:G3} {7}", _
                                       persian.GetMonth(date1), _
                                       persian.GetDayOfMonth(date1), _
                                       persian.GetYear(date1), _
                                       persian.GetHour(date1), _
                                       persian.GetMinute(date1), _
                                       persian.GetSecond(date1), _
                                       persian.GetMilliseconds(date1), _
                                       date1.Kind, _
                                       DateTimeFormatInfo.CurrentInfo.TimeSeparator)
      Console.WriteLine()
      
      Console.WriteLine("Using the Hijri Calendar:")
      ' Get current culture so it can later be restored.
      Dim dftCulture As CultureInfo = Thread.CurrentThread.CurrentCulture
      
      ' Define strings for use in composite formatting.
      Dim dFormat As String 
      Dim fmtString As String 
      ' Define Hijri calendar.
      Dim hijri As New HijriCalendar()
      ' Make ar-SY the current culture and Hijri the current calendar.
      Thread.CurrentThread.CurrentCulture = New CultureInfo("ar-SY")
      Dim current As CultureInfo = CultureInfo.CurrentCulture
      current.DateTimeFormat.Calendar = hijri
      dFormat = current.DateTimeFormat.ShortDatePattern
      ' Ensure year is displayed as four digits.
      dFormat = Regex.Replace(dFormat, "/yy$", "/yyyy") + " H:mm:ss.fff"
      fmtString = "{0} culture using the {1} calendar: {2:" + dFormat + "} {3}"
      Dim date2 As New Date(1431, 9, 9, 16, 32, 18, 500, _
                            hijri, DateTimeKind.Local)
      Console.WriteLine(fmtString, current, GetCalendarName(hijri), _
                        date2, date2.Kind) 

      ' Restore previous culture.
      Thread.CurrentThread.CurrentCulture = dftCulture
      dFormat = DateTimeFormatInfo.CurrentInfo.ShortDatePattern +" H:mm:ss.fff"
      fmtString = "{0} culture using the {1} calendar: {2:" + dFormat + "} {3}"
      Console.WriteLine(fmtString, CultureInfo.CurrentCulture, _
                        GetCalendarName(CultureInfo.CurrentCulture.Calendar), _
                        date2, date2.Kind) 
   End Sub
   
   Private Function GetCalendarName(cal As Calendar) As String
      Return Regex.Match(cal.ToString(), "\.(\w+)Calendar").Groups(1).Value
   End Function
End Module
' The example displays the following output:
'       Using the Persian Calendar:
'       8/18/2010 4:32:18.500 PM
'       5/27/1389 16:32:18.500
'       
'       Using the Hijri Calendar:
'       ar-SY culture using the Hijri calendar: 09/09/1431 16:32:18.500
'       en-US culture using the Gregorian calendar: 8/18/2010 16:32:18.500

Comentários

Os valores permitidos para yearos parâmetros , monthe day dependem do calendar parâmetro . Uma exceção será lançada se a data e hora especificada não puder ser expressada usando-se calendar.

Para aplicativos nos quais a portabilidade de dados de data e hora ou um grau limitado de reconhecimento do fuso horário seja importante, é possível usar o construtor DateTimeOffset correspondente.

Importante

As eras nos calendários japoneses se baseiam no reinado do Imperador e, portanto, estão sujeitas a alterações. Por exemplo, 1º de maio de 2019 marcou o início da era Reiwa no JapaneseCalendar e no JapaneseLunisolarCalendar. Tal alteração de eras afeta todos os aplicativos que usam esses calendários. Para obter mais informações e determinar se seus aplicativos são afetados, consulte Manipulando uma nova era no calendário japonês no .NET. Para obter informações sobre como testar seus aplicativos em sistemas Windows para garantir sua preparação para a alteração da era, consulte Preparar seu aplicativo para a alteração da era japonesa. Para recursos no .NET que dão suporte a calendários com várias eras e para práticas recomendadas ao trabalhar com calendários que dão suporte a várias eras, consulte Trabalhando com eras.

O namespace System.Globalization fornece vários calendários que incluem GregorianCalendar e JulianCalendar.

Aplica-se a

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime com ano, mês, dia, hora, minuto, segundo, milissegundo e UTC (Tempo Universal Coordenado) ou hora local especificados para o calendário especificado.

public:
 DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond);
public DateTime (int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond);
new DateTime : int * int * int * int * int * int * int * int -> DateTime
Public Sub New (year As Integer, month As Integer, day As Integer, hour As Integer, minute As Integer, second As Integer, millisecond As Integer, microsecond As Integer)

Parâmetros

year
Int32

O ano (de 1 a 9999).

month
Int32

O mês (de 1 a 12).

day
Int32

O dia (1 até o número de dias em month).

hour
Int32

As horas (de 0 a 23).

minute
Int32

Os minutos (de 0 a 59).

second
Int32

Os segundos (de 0 a 59).

millisecond
Int32

Os milissegundos (de 0 a 999).

microsecond
Int32

Os microssegundos (0 a 999).

Exceções

year é menor que 1 ou maior que 9999.

- ou -

month é menor que 1 ou maior que 12.

- ou -

day é menor que 1 ou maior que o número de dias em month.

- ou -

hour é menor que 0 ou maior que 23.

- ou -

minute é menor que 0 ou maior que 59.

- ou -

second é menor que 0 ou maior que 59.

- ou -

millisecond é menor que 0 ou maior que 999.

- ou -

microsecond é menor que 0 ou maior que 999.

Comentários

Esse construtor interpreta yeare monthday como um ano, mês e dia no calendário gregoriano. Para criar uma instância de um DateTime valor usando o ano, mês e dia em outro calendário, chame o DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) construtor .

A propriedade Kind é inicializada com Unspecified.

Para aplicativos nos quais a portabilidade de dados de data e hora ou um grau limitado de reconhecimento do fuso horário seja importante, é possível usar o construtor DateTimeOffset correspondente.

Aplica-se a

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime para o ano, mês, dia, hora, minuto, segundo e milissegundo especificados para o calendário especificado.

public:
 DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, System::Globalization::Calendar ^ calendar);
public DateTime (int year, int month, int day, int hour, int minute, int second, int millisecond, System.Globalization.Calendar calendar);
new DateTime : int * int * int * int * int * int * int * System.Globalization.Calendar -> DateTime
Public Sub New (year As Integer, month As Integer, day As Integer, hour As Integer, minute As Integer, second As Integer, millisecond As Integer, calendar As Calendar)

Parâmetros

year
Int32

O ano (de 1 até o número de anos em calendar).

month
Int32

O mês (1 até o número de meses em calendar).

day
Int32

O dia (1 até o número de dias em month).

hour
Int32

As horas (de 0 a 23).

minute
Int32

Os minutos (de 0 a 59).

second
Int32

Os segundos (de 0 a 59).

millisecond
Int32

Os milissegundos (de 0 a 999).

calendar
Calendar

O calendário usado para interpretar year, month e day.

Exceções

calendar é null.

year não está no intervalo suportado por calendar.

- ou -

month é menor que 1 ou maior que o número de meses em calendar.

- ou -

day é menor que 1 ou maior que o número de dias em month.

- ou -

hour é menor que 0 ou maior que 23.

- ou -

minute é menor que 0 ou maior que 59.

- ou -

second é menor que 0 ou maior que 59.

- ou -

millisecond é menor que 0 ou maior que 999.

Exemplos

O exemplo a seguir chama o DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) construtor duas vezes para instanciar dois DateTime valores. A primeira chamada cria uma instância de um valor DateTime usando-se um objeto PersianCalendar. Como o calendário persa não pode ser designado como o calendário padrão para uma cultura, a exibição de uma data usando-se o calendário persa requer chamadas individuais para os métodos PersianCalendar.GetMonth, PersianCalendar.GetDayOfMonth e PersianCalendar.GetYear. A segunda chamada para o construtor cria uma instância de um valor DateTime usando-se um objeto HijriCalendar. O exemplo altera a cultura atual para árabe (Síria) e muda o calendário padrão da cultura atual para o calendário islâmico. Como Hijri é o calendário padrão da cultura atual, o método Console.WriteLine usa-o para formatar a data. Quando a cultura atual anterior (que é inglês (Estados Unidos) nesse caso) é restaurada, o método Console.WriteLine usa o calendário gregoriano padrão da cultura atual para formatar a data.

using System;
using System.Globalization;
using System.Text.RegularExpressions;
using System.Threading;

public class Example
{
   public static void Main()
   {
      Console.WriteLine("Using the Persian Calendar:");
      PersianCalendar persian = new PersianCalendar();
      DateTime date1 = new DateTime(1389, 5, 27, 16, 32, 18, 500, persian);
      Console.WriteLine(date1.ToString("M/dd/yyyy h:mm:ss.fff tt"));
      Console.WriteLine("{0}/{1}/{2} {3}{7}{4:D2}{7}{5:D2}.{6:G3}\n",
                                       persian.GetMonth(date1),
                                       persian.GetDayOfMonth(date1),
                                       persian.GetYear(date1),
                                       persian.GetHour(date1),
                                       persian.GetMinute(date1),
                                       persian.GetSecond(date1),
                                       persian.GetMilliseconds(date1),
                                       DateTimeFormatInfo.CurrentInfo.TimeSeparator);

      Console.WriteLine("Using the Hijri Calendar:");
      // Get current culture so it can later be restored.
      CultureInfo dftCulture = Thread.CurrentThread.CurrentCulture;

      // Define strings for use in composite formatting.
      string dFormat;
      string fmtString;
      // Define Hijri calendar.
      HijriCalendar hijri = new HijriCalendar();
      // Make ar-SY the current culture and Hijri the current calendar.
      Thread.CurrentThread.CurrentCulture = new CultureInfo("ar-SY");
      CultureInfo current = CultureInfo.CurrentCulture;
      current.DateTimeFormat.Calendar = hijri;
      dFormat = current.DateTimeFormat.ShortDatePattern;
      // Ensure year is displayed as four digits.
      dFormat = Regex.Replace(dFormat, "/yy$", "/yyyy") + " H:mm:ss.fff";
      fmtString = "{0} culture using the {1} calendar: {2:" + dFormat + "}";
      DateTime date2 = new DateTime(1431, 9, 9, 16, 32, 18, 500, hijri);
      Console.WriteLine(fmtString, current, GetCalendarName(hijri), date2);

      // Restore previous culture.
      Thread.CurrentThread.CurrentCulture = dftCulture;
      dFormat = DateTimeFormatInfo.CurrentInfo.ShortDatePattern +" H:mm:ss.fff";
      fmtString = "{0} culture using the {1} calendar: {2:" + dFormat + "}";
      Console.WriteLine(fmtString,
                        CultureInfo.CurrentCulture,
                        GetCalendarName(CultureInfo.CurrentCulture.Calendar),
                        date2);
   }

   private static string GetCalendarName(Calendar cal)
   {
      return Regex.Match(cal.ToString(), "\\.(\\w+)Calendar").Groups[1].Value;
   }
}
// The example displays the following output:
//       8/18/2010 4:32:18.500 PM
//       5/27/1389 16:32:18.500
//
//       Using the Hijri Calendar:
//       ar-SY culture using the Hijri calendar: 09/09/1431 16:32:18.500
//       en-US culture using the Gregorian calendar: 8/18/2010 16:32:18.500
open System
open System.Globalization
open System.Text.RegularExpressions
open System.Threading

let getCalendarName (cal: Calendar) =
      Regex.Match(string cal, "\\.(\\w+)Calendar").Groups[1].Value

printfn "Using the Persian Calendar:"
let persian = PersianCalendar()
let date1 = DateTime(1389, 5, 27, 16, 32, 18, 500, persian)
printfn $"""{date1.ToString("M/dd/yyyy h:mm:ss.fff tt")}"""
let sep = DateTimeFormatInfo.CurrentInfo.TimeSeparator
printfn $"{persian.GetMonth date1}/{persian.GetDayOfMonth date1}/{persian.GetYear date1} {persian.GetHour date1}{sep}%02i{persian.GetMinute date1}{sep}%02i{persian.GetSecond date1}.%.3f{persian.GetMilliseconds date1}\n"

printfn "Using the Hijri Calendar:"
// Get current culture so it can later be restored.
let dftCulture = Thread.CurrentThread.CurrentCulture

// Define Hijri calendar.
let hijri = HijriCalendar()
// Make ar-SY the current culture and Hijri the current calendar.
Thread.CurrentThread.CurrentCulture <- CultureInfo "ar-SY"
let current = CultureInfo.CurrentCulture
current.DateTimeFormat.Calendar <- hijri

let dFormat = 
    let dFormat = current.DateTimeFormat.ShortDatePattern
    // Ensure year is displayed as four digits.
    Regex.Replace(dFormat, "/yy$", "/yyyy") + " H:mm:ss.fff"

let fmtString = "{0} culture using the {1} calendar: {2:" + dFormat + "}"
let date2 = DateTime(1431, 9, 9, 16, 32, 18, 500, hijri)
Console.WriteLine(fmtString, current, getCalendarName hijri, date2)

// Restore previous culture.
Thread.CurrentThread.CurrentCulture <- dftCulture
let dFormat2 = DateTimeFormatInfo.CurrentInfo.ShortDatePattern + " H:mm:ss.fff"
let fmtString2 = "{0} culture using the {1} calendar: {2:" + dFormat + "}"
Console.WriteLine(fmtString2, CultureInfo.CurrentCulture, getCalendarName CultureInfo.CurrentCulture.Calendar, date2)


// The example displays the following output:
//       8/18/2010 4:32:18.500 PM
//       5/27/1389 16:32:18.500
//
//       Using the Hijri Calendar:
//       ar-SY culture using the Hijri calendar: 09/09/1431 16:32:18.500
//       en-US culture using the Gregorian calendar: 8/18/2010 16:32:18.500
Imports System.Globalization
Imports System.Text.RegularExpressions
Imports System.Threading

Module Example
   Public Sub Main()
      Console.WriteLine("Using the Persian Calendar:")
      Dim persian As New PersianCalendar()
      Dim date1 As New Date(1389, 5, 27, 16, 32, 18, 500, persian)
      Console.WriteLine(date1.ToString("M/dd/yyyy h:mm:ss.fff tt"))
      Console.WriteLine("{0}/{1}/{2} {3}{7}{4:D2}{7}{5:D2}.{6:G3}", _
                                       persian.GetMonth(date1), _
                                       persian.GetDayOfMonth(date1), _
                                       persian.GetYear(date1), _
                                       persian.GetHour(date1), _
                                       persian.GetMinute(date1), _
                                       persian.GetSecond(date1), _
                                       persian.GetMilliseconds(date1), _
                                       DateTimeFormatInfo.CurrentInfo.TimeSeparator)
      Console.WriteLine()
      
      Console.WriteLine("Using the Hijri Calendar:")
      ' Get current culture so it can later be restored.
      Dim dftCulture As CultureInfo = Thread.CurrentThread.CurrentCulture
      
      ' Define strings for use in composite formatting.
      Dim dFormat As String 
      Dim fmtString As String 
      ' Define Hijri calendar.
      Dim hijri As New HijriCalendar()
      ' Make ar-SY the current culture and Hijri the current calendar.
      Thread.CurrentThread.CurrentCulture = New CultureInfo("ar-SY")
      Dim current As CultureInfo = CultureInfo.CurrentCulture
      current.DateTimeFormat.Calendar = hijri
      dFormat = current.DateTimeFormat.ShortDatePattern
      ' Ensure year is displayed as four digits.
      dFormat = Regex.Replace(dFormat, "/yy$", "/yyyy") + " H:mm:ss.fff"
      fmtString = "{0} culture using the {1} calendar: {2:" + dFormat + "}"
      Dim date2 As New Date(1431, 9, 9, 16, 32, 18, 500, hijri)
      Console.WriteLine(fmtString, current, GetCalendarName(hijri), date2) 

      ' Restore previous culture.
      Thread.CurrentThread.CurrentCulture = dftCulture
      dFormat = DateTimeFormatInfo.CurrentInfo.ShortDatePattern +" H:mm:ss.fff"
      fmtString = "{0} culture using the {1} calendar: {2:" + dFormat + "}"
      Console.WriteLine(fmtString, CultureInfo.CurrentCulture, _
                        GetCalendarName(CultureInfo.CurrentCulture.Calendar), _
                        date2) 
   End Sub
   
   Private Function GetCalendarName(cal As Calendar) As String
      Return Regex.Match(cal.ToString(), "\.(\w+)Calendar").Groups(1).Value
   End Function
End Module
' The example displays the following output:
'       Using the Persian Calendar:
'       8/18/2010 4:32:18.500 PM
'       5/27/1389 16:32:18.500
'       
'       Using the Hijri Calendar:
'       ar-SY culture using the Hijri calendar: 09/09/1431 16:32:18.500
'       en-US culture using the Gregorian calendar: 8/18/2010 16:32:18.500

Comentários

A propriedade Kind é inicializada com Unspecified.

Os valores permitidos para year, monthe day dependem calendarde . Uma exceção será lançada se a data e hora especificada não puder ser expressada usando-se calendar.

Para aplicativos nos quais a portabilidade de dados de data e hora ou um grau limitado de reconhecimento do fuso horário seja importante, é possível usar o construtor DateTimeOffset correspondente.

Importante

As eras nos calendários japoneses se baseiam no reinado do Imperador e, portanto, estão sujeitas a alterações. Por exemplo, 1º de maio de 2019 marcou o início da era Reiwa no JapaneseCalendar e no JapaneseLunisolarCalendar. Tal alteração de eras afeta todos os aplicativos que usam esses calendários. Para obter mais informações e determinar se seus aplicativos são afetados, consulte Manipulando uma nova era no calendário japonês no .NET. Para obter informações sobre como testar seus aplicativos em sistemas Windows para garantir sua preparação para a alteração da era, consulte Preparar seu aplicativo para a alteração da era japonesa. Para recursos no .NET que dão suporte a calendários com várias eras e para práticas recomendadas ao trabalhar com calendários que dão suporte a várias eras, consulte Trabalhando com eras.

O namespace System.Globalization fornece vários calendários que incluem GregorianCalendar e JulianCalendar.

Confira também

Aplica-se a

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime com o ano, mês, dia, hora, minuto, segundo, milissegundo e UTC (Tempo Universal Coordenado) ou hora local especificados.

public:
 DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, DateTimeKind kind);
public DateTime (int year, int month, int day, int hour, int minute, int second, int millisecond, DateTimeKind kind);
new DateTime : int * int * int * int * int * int * int * DateTimeKind -> DateTime
Public Sub New (year As Integer, month As Integer, day As Integer, hour As Integer, minute As Integer, second As Integer, millisecond As Integer, kind As DateTimeKind)

Parâmetros

year
Int32

O ano (de 1 a 9999).

month
Int32

O mês (de 1 a 12).

day
Int32

O dia (1 até o número de dias em month).

hour
Int32

As horas (de 0 a 23).

minute
Int32

Os minutos (de 0 a 59).

second
Int32

Os segundos (de 0 a 59).

millisecond
Int32

Os milissegundos (de 0 a 999).

kind
DateTimeKind

Um dos valores de enumeração que indica se year, month, day, hour, minute, second e millisecond especificam uma hora local, o UTC (Tempo Universal Coordenado) ou nenhum dos dois.

Exceções

year é menor que 1 ou maior que 9999.

- ou -

month é menor que 1 ou maior que 12.

- ou -

day é menor que 1 ou maior que o número de dias em month.

- ou -

hour é menor que 0 ou maior que 23.

- ou -

minute é menor que 0 ou maior que 59.

- ou -

second é menor que 0 ou maior que 59.

- ou -

millisecond é menor que 0 ou maior que 999.

kind não é um dos valores DateTimeKind.

Exemplos

O exemplo a seguir usa o DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) construtor para instanciar um DateTime valor.

DateTime date1 = new DateTime(2010, 8, 18, 16, 32, 18, 500,
                              DateTimeKind.Local);
Console.WriteLine("{0:M/dd/yyyy h:mm:ss.fff tt} {1}", date1, date1.Kind);
// The example displays the following output, in this case for en-us culture:
//      8/18/2010 4:32:18.500 PM Local
let date1 = DateTime(2010, 8, 18, 16, 32, 18, 500, DateTimeKind.Local)
printfn $"""{date1.ToString "M/dd/yyyy h:mm:ss.fff tt"} {date1.Kind}"""

// The example displays the following output, in this case for en-us culture:
//      8/18/2010 4:32:18.500 PM Local
Dim date1 As New Date(2010, 8, 18, 16, 32, 18, 500, DateTimeKind.Local)
Console.WriteLine("{0:M/dd/yyyy h:mm:ss.fff tt} {1}", date1, date1.Kind)
' The example displays the following output:
'      8/18/2010 4:32:18.500 PM Local

Comentários

Este construtor interpretayear , monthe day como um ano, mês e dia no calendário gregoriano. Para criar uma instância de um DateTime valor usando o ano, o mês e o dia em outro calendário, chame o DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) construtor.

Para aplicativos nos quais a portabilidade de dados de data e hora ou um grau limitado de reconhecimento do fuso horário seja importante, é possível usar o construtor DateTimeOffset correspondente.

Aplica-se a

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime para o ano, mês, dia, hora, minuto, segundo e milissegundo especificados.

public:
 DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond);
public DateTime (int year, int month, int day, int hour, int minute, int second, int millisecond);
new DateTime : int * int * int * int * int * int * int -> DateTime
Public Sub New (year As Integer, month As Integer, day As Integer, hour As Integer, minute As Integer, second As Integer, millisecond As Integer)

Parâmetros

year
Int32

O ano (de 1 a 9999).

month
Int32

O mês (de 1 a 12).

day
Int32

O dia (1 até o número de dias em month).

hour
Int32

As horas (de 0 a 23).

minute
Int32

Os minutos (de 0 a 59).

second
Int32

Os segundos (de 0 a 59).

millisecond
Int32

Os milissegundos (de 0 a 999).

Exceções

year é menor que 1 ou maior que 9999.

- ou -

month é menor que 1 ou maior que 12.

- ou -

day é menor que 1 ou maior que o número de dias em month.

- ou -

hour é menor que 0 ou maior que 23.

- ou -

minute é menor que 0 ou maior que 59.

- ou -

second é menor que 0 ou maior que 59.

- ou -

millisecond é menor que 0 ou maior que 999.

Exemplos

O exemplo a seguir usa o DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32) construtor para instanciar um DateTime valor.

DateTime date1 = new DateTime(2010, 8, 18, 16, 32, 18, 500);
Console.WriteLine(date1.ToString("M/dd/yyyy h:mm:ss.fff tt"));
// The example displays the following output, in this case for en-us culture:
//      8/18/2010 4:32:18.500 PM
let date1 = DateTime(2010, 8, 18, 16, 32, 18, 500)

date1.ToString "M/dd/yyyy h:mm:ss.fff tt"
|> printfn "%s"

// The example displays the following output, in this case for en-us culture:
//      8/18/2010 4:32:18.500 PM
Dim date1 As New Date(2010, 8, 18, 16, 32, 18, 500)
Console.WriteLine(date1.ToString("M/dd/yyyy h:mm:ss.fff tt"))
' The example displays the following output:
'      8/18/2010 4:32:18.500 PM

Comentários

Este construtor interpretayear , monthe day como um ano, mês e dia no calendário gregoriano. Para criar uma instância de um DateTime valor usando o ano, o mês e o dia em outro calendário, chame o DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) construtor.

A propriedade Kind é inicializada com Unspecified.

Para aplicativos nos quais a portabilidade de dados de data e hora ou um grau limitado de reconhecimento do fuso horário seja importante, é possível usar o construtor DateTimeOffset correspondente.

Confira também

Aplica-se a

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime com ano, mês, dia, hora, minuto, segundo, milissegundo e UTC (Tempo Universal Coordenado) ou hora local especificados para o calendário especificado.

public:
 DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, System::Globalization::Calendar ^ calendar, DateTimeKind kind);
public DateTime (int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, System.Globalization.Calendar calendar, DateTimeKind kind);
new DateTime : int * int * int * int * int * int * int * int * System.Globalization.Calendar * DateTimeKind -> DateTime
Public Sub New (year As Integer, month As Integer, day As Integer, hour As Integer, minute As Integer, second As Integer, millisecond As Integer, microsecond As Integer, calendar As Calendar, kind As DateTimeKind)

Parâmetros

year
Int32

O ano (de 1 até o número de anos em calendar).

month
Int32

O mês (1 até o número de meses em calendar).

day
Int32

O dia (1 até o número de dias em month).

hour
Int32

As horas (de 0 a 23).

minute
Int32

Os minutos (de 0 a 59).

second
Int32

Os segundos (de 0 a 59).

millisecond
Int32

Os milissegundos (de 0 a 999).

microsecond
Int32

Os microssegundos (0 a 999).

calendar
Calendar

O calendário usado para interpretar year, month e day.

kind
DateTimeKind

Um dos valores de enumeração que indica se year, month, day, hour, minute, second e millisecond especificam uma hora local, o UTC (Tempo Universal Coordenado) ou nenhum dos dois.

Exceções

calendar é null

year não está no intervalo suportado por calendar.

- ou -

month é menor que 1 ou maior que o número de meses em calendar.

- ou -

day é menor que 1 ou maior que o número de dias em month.

- ou -

hour é menor que 0 ou maior que 23.

- ou -

minute é menor que 0 ou maior que 59.

- ou -

second é menor que 0 ou maior que 59.

- ou -

millisecond é menor que 0 ou maior que 999.

- ou -

microsecond é menor que 0 ou maior que 999.

kind não é um dos valores DateTimeKind.

Comentários

Os valores permitidos para yearparâmetros , monthe day dependem do calendar parâmetro . Uma exceção será lançada se a data e hora especificada não puder ser expressada usando-se calendar.

Para aplicativos nos quais a portabilidade de dados de data e hora ou um grau limitado de reconhecimento do fuso horário seja importante, é possível usar o construtor DateTimeOffset correspondente.

Aplica-se a

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime para o ano, o mês, o dia, a hora, o minuto, o segundo e o UTC (Tempo Universal Coordenado) especificados ou para a hora local.

public:
 DateTime(int year, int month, int day, int hour, int minute, int second, DateTimeKind kind);
public DateTime (int year, int month, int day, int hour, int minute, int second, DateTimeKind kind);
new DateTime : int * int * int * int * int * int * DateTimeKind -> DateTime
Public Sub New (year As Integer, month As Integer, day As Integer, hour As Integer, minute As Integer, second As Integer, kind As DateTimeKind)

Parâmetros

year
Int32

O ano (de 1 a 9999).

month
Int32

O mês (de 1 a 12).

day
Int32

O dia (1 até o número de dias em month).

hour
Int32

As horas (de 0 a 23).

minute
Int32

Os minutos (de 0 a 59).

second
Int32

Os segundos (de 0 a 59).

kind
DateTimeKind

Um dos valores de enumeração que indica se year, month, day, hour, minute e second especificam a hora local, UTC (Tempo Universal Coordenado) ou nenhum dos dois.

Exceções

year é menor que 1 ou maior que 9999.

- ou -

month é menor que 1 ou maior que 12.

- ou -

day é menor que 1 ou maior que o número de dias em month.

- ou -

hour é menor que 0 ou maior que 23.

- ou -

minute é menor que 0 ou maior que 59.

- ou -

second é menor que 0 ou maior que 59.

kind não é um dos valores DateTimeKind.

Exemplos

O exemplo a seguir usa o DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) construtor para instanciar um DateTime valor.

DateTime date1 = new DateTime(2010, 8, 18, 16, 32, 0, DateTimeKind.Local);
Console.WriteLine("{0} {1}", date1, date1.Kind);
// The example displays the following output, in this case for en-us culture:
//      8/18/2010 4:32:00 PM Local
let date1 = DateTime(2010, 8, 18, 16, 32, 0, DateTimeKind.Local)
printfn $"{date1} {date1.Kind}"

// The example displays the following output, in this case for en-us culture:
//      8/18/2010 4:32:00 PM Local
Dim date1 As New Date(2010, 8, 18, 16, 32, 0, DateTimeKind.Local)
Console.WriteLine("{0} {1}", date1, date1.Kind)
' The example displays the following output:
'      8/18/2010 4:32:00 PM Local

Comentários

Este construtor interpretayear , monthe day como um ano, mês e dia no calendário gregoriano. Para criar uma instância de um DateTime valor usando o ano, o mês e o dia em outro calendário, chame o DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) construtor.

Para aplicativos nos quais a portabilidade de dados de data e hora ou um grau limitado de reconhecimento do fuso horário seja importante, é possível usar o construtor DateTimeOffset correspondente.

Aplica-se a

DateTime(Int32, Int32, Int32, Int32, Int32, Int32)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime para o ano, mês, dia, hora, minuto e segundo especificados.

public:
 DateTime(int year, int month, int day, int hour, int minute, int second);
public DateTime (int year, int month, int day, int hour, int minute, int second);
new DateTime : int * int * int * int * int * int -> DateTime
Public Sub New (year As Integer, month As Integer, day As Integer, hour As Integer, minute As Integer, second As Integer)

Parâmetros

year
Int32

O ano (de 1 a 9999).

month
Int32

O mês (de 1 a 12).

day
Int32

O dia (1 até o número de dias em month).

hour
Int32

As horas (de 0 a 23).

minute
Int32

Os minutos (de 0 a 59).

second
Int32

Os segundos (de 0 a 59).

Exceções

year é menor que 1 ou maior que 9999.

- ou -

month é menor que 1 ou maior que 12.

- ou -

day é menor que 1 ou maior que o número de dias em month.

- ou -

hour é menor que 0 ou maior que 23.

- ou -

minute é menor que 0 ou maior que 59.

- ou -

second é menor que 0 ou maior que 59.

Exemplos

O exemplo a seguir usa o DateTime construtor para instanciar um DateTime valor.

DateTime date1 = new DateTime(2010, 8, 18, 16, 32, 0);
Console.WriteLine(date1.ToString());
// The example displays the following output, in this case for en-us culture:
//      8/18/2010 4:32:00 PM
let date1 = DateTime(2010, 8, 18, 16, 32, 0)
printfn $"{date1}"

// The example displays the following output, in this case for en-us culture:
//      8/18/2010 4:32:00 PM
Dim date1 As New Date(2010, 8, 18, 16, 32, 0)
Console.WriteLine(date1.ToString())
' The example displays the following output:
'      8/18/2010 4:32:00 PM

Comentários

A propriedade Kind é inicializada com Unspecified.

Este construtor interpretayear , monthe day como um ano, mês e dia no calendário gregoriano. Para criar uma instância de um DateTime valor usando o ano, o mês e o dia em outro calendário, chame o DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar) construtor.

Para aplicativos nos quais a portabilidade de dados de data e hora ou um grau limitado de reconhecimento do fuso horário seja importante, é possível usar o construtor DateTimeOffset correspondente.

Aplica-se a

DateTime(Int32, Int32, Int32, Calendar)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime para o ano, o mês e o dia especificados do calendário especificado.

public:
 DateTime(int year, int month, int day, System::Globalization::Calendar ^ calendar);
public DateTime (int year, int month, int day, System.Globalization.Calendar calendar);
new DateTime : int * int * int * System.Globalization.Calendar -> DateTime
Public Sub New (year As Integer, month As Integer, day As Integer, calendar As Calendar)

Parâmetros

year
Int32

O ano (de 1 até o número de anos em calendar).

month
Int32

O mês (1 até o número de meses em calendar).

day
Int32

O dia (1 até o número de dias em month).

calendar
Calendar

O calendário usado para interpretar year, month e day.

Exceções

calendar é null.

year não está no intervalo suportado por calendar.

- ou -

month é menor que 1 ou maior que o número de meses em calendar.

- ou -

day é menor que 1 ou maior que o número de dias em month.

Exemplos

O exemplo a seguir chama o DateTime(Int32, Int32, Int32, Calendar) construtor duas vezes para instanciar dois DateTime valores. A primeira chamada cria uma instância de um valor DateTime usando-se um objeto PersianCalendar. Como o calendário persa não pode ser designado como o calendário padrão para uma cultura, a exibição de uma data usando-se o calendário persa requer chamadas individuais para os métodos PersianCalendar.GetMonth, PersianCalendar.GetDayOfMonth e PersianCalendar.GetYear. A segunda chamada para o construtor cria uma instância de um valor DateTime usando-se um objeto HijriCalendar. O exemplo altera a cultura atual para árabe (Síria) e muda o calendário padrão da cultura atual para o calendário islâmico. Como Hijri é o calendário padrão da cultura atual, o método Console.WriteLine usa-o para formatar a data. Quando a cultura atual anterior (que é inglês (Estados Unidos) nesse caso) é restaurada, o método Console.WriteLine usa o calendário gregoriano padrão da cultura atual para formatar a data.

using System;
using System.Globalization;
using System.Text.RegularExpressions;
using System.Threading;

public class Example
{
   public static void Main()
   {
      Console.WriteLine("Using the Persian Calendar:");
      PersianCalendar persian = new PersianCalendar();
      DateTime date1 = new DateTime(1389, 5, 27, persian);
      Console.WriteLine(date1.ToString());
      Console.WriteLine("{0}/{1}/{2}\n", persian.GetMonth(date1),
                                       persian.GetDayOfMonth(date1),
                                       persian.GetYear(date1));

      Console.WriteLine("Using the Hijri Calendar:");
      // Get current culture so it can later be restored.
      CultureInfo dftCulture = Thread.CurrentThread.CurrentCulture;

      // Define Hijri calendar.
      HijriCalendar hijri = new HijriCalendar();
      // Make ar-SY the current culture and Hijri the current calendar.
      Thread.CurrentThread.CurrentCulture = new CultureInfo("ar-SY");
      CultureInfo current = CultureInfo.CurrentCulture;
      current.DateTimeFormat.Calendar = hijri;
      string dFormat = current.DateTimeFormat.ShortDatePattern;
      // Ensure year is displayed as four digits.
      dFormat = Regex.Replace(dFormat, "/yy$", "/yyyy");
      current.DateTimeFormat.ShortDatePattern = dFormat;
      DateTime date2 = new DateTime(1431, 9, 9, hijri);
      Console.WriteLine("{0} culture using the {1} calendar: {2:d}", current,
                        GetCalendarName(hijri), date2);

      // Restore previous culture.
      Thread.CurrentThread.CurrentCulture = dftCulture;
      Console.WriteLine("{0} culture using the {1} calendar: {2:d}",
                        CultureInfo.CurrentCulture,
                        GetCalendarName(CultureInfo.CurrentCulture.Calendar),
                        date2);
   }

   private static string GetCalendarName(Calendar cal)
   {
      return Regex.Match(cal.ToString(), "\\.(\\w+)Calendar").Groups[1].Value;
   }
}
// The example displays the following output:
//       Using the Persian Calendar:
//       8/18/2010 12:00:00 AM
//       5/27/1389
//
//       Using the Hijri Calendar:
//       ar-SY culture using the Hijri calendar: 09/09/1431
//       en-US culture using the Gregorian calendar: 8/18/2010
open System
open System.Globalization
open System.Text.RegularExpressions
open System.Threading

let getCalendarName (cal: Calendar) =
    Regex.Match(string cal, "\\.(\\w+)Calendar").Groups[1].Value

printfn "Using the Persian Calendar:"
let persian = PersianCalendar()
let date1 = DateTime(1389, 5, 27, persian)
printfn $"{date1}"
printfn $"{persian.GetMonth date1}/{persian.GetDayOfMonth date1}/{persian.GetYear date1}\n"

printfn "Using the Hijri Calendar:"
// Get current culture so it can later be restored.
let dftCulture = Thread.CurrentThread.CurrentCulture

// Define Hijri calendar.
let hijri = HijriCalendar()
// Make ar-SY the current culture and Hijri the current calendar.
Thread.CurrentThread.CurrentCulture <- CultureInfo "ar-SY"
let current = CultureInfo.CurrentCulture
current.DateTimeFormat.Calendar <- hijri

let dFormat =
    let dFormat = current.DateTimeFormat.ShortDatePattern
    // Ensure year is displayed as four digits.
    Regex.Replace(dFormat, "/yy$", "/yyyy")

current.DateTimeFormat.ShortDatePattern <- dFormat
let date2 = DateTime(1431, 9, 9, hijri)
printfn $"{current} culture using the {getCalendarName hijri} calendar: {date2:d}"

// Restore previous culture.
Thread.CurrentThread.CurrentCulture <- dftCulture
printfn $"{CultureInfo.CurrentCulture} culture using the {getCalendarName CultureInfo.CurrentCulture.Calendar} calendar: {date2:d}"


// The example displays the following output:
//       Using the Persian Calendar:
//       8/18/2010 12:00:00 AM
//       5/27/1389
//
//       Using the Hijri Calendar:
//       ar-SY culture using the Hijri calendar: 09/09/1431
//       en-US culture using the Gregorian calendar: 8/18/2010
Imports System.Globalization
Imports System.Text.RegularExpressions
Imports System.Threading

Module Example
   Public Sub Main()
      Console.WriteLine("Using the Persian Calendar:")
      Dim persian As New PersianCalendar()
      Dim date1 As New Date(1389, 5, 27, persian)
      Console.WriteLine(date1.ToString())
      Console.WriteLine("{0}/{1}/{2}", persian.GetMonth(date1), _
                                       persian.GetDayOfMonth(date1), _
                                       persian.GetYear(date1))
      Console.WriteLine()
      
      Console.WriteLine("Using the Hijri Calendar:")
      ' Get current culture so it can later be restored.
      Dim dftCulture As CultureInfo = Thread.CurrentThread.CurrentCulture
      
      ' Define Hijri calendar.
      Dim hijri As New HijriCalendar()
      ' Make ar-SY the current culture and Hijri the current calendar.
      Thread.CurrentThread.CurrentCulture = New CultureInfo("ar-SY")
      Dim current As CultureInfo = CultureInfo.CurrentCulture
      current.DateTimeFormat.Calendar = hijri
      Dim dFormat As String = current.DateTimeFormat.ShortDatePattern
      ' Ensure year is displayed as four digits.
      dFormat = Regex.Replace(dFormat, "/yy$", "/yyyy")
      current.DateTimeFormat.ShortDatePattern = dFormat
      Dim date2 As New Date(1431, 9, 9, hijri)
      Console.WriteLine("{0} culture using the {1} calendar: {2:d}", current, _
                        GetCalendarName(hijri), date2) 
      
      ' Restore previous culture.
      Thread.CurrentThread.CurrentCulture = dftCulture
      Console.WriteLine("{0} culture using the {1} calendar: {2:d}", _
                        CultureInfo.CurrentCulture, _
                        GetCalendarName(CultureInfo.CurrentCulture.Calendar), _
                        date2) 
   End Sub
   
   Private Function GetCalendarName(cal As Calendar) As String
      Return Regex.Match(cal.ToString(), "\.(\w+)Calendar").Groups(1).Value
   End Function
End Module
' The example displays the following output:
'       Using the Persian Calendar:
'       8/18/2010 12:00:00 AM
'       5/27/1389
'       
'       Using the Hijri Calendar:
'       ar-SY culture using the Hijri calendar: 09/09/1431
'       en-US culture using the Gregorian calendar: 8/18/2010

Comentários

A hora do dia para o resultado DateTime é meia-noite (00:00:00). A propriedade Kind é inicializada com Unspecified.

Os valores permitidos para year, monthe day dependem calendarde . Uma exceção será lançada se a data e hora especificada não puder ser expressada usando-se calendar.

Importante

As eras nos calendários japoneses se baseiam no reinado do Imperador e, portanto, estão sujeitas a alterações. Por exemplo, 1º de maio de 2019 marcou o início da era Reiwa no JapaneseCalendar e no JapaneseLunisolarCalendar. Tal alteração de eras afeta todos os aplicativos que usam esses calendários. Para obter mais informações e determinar se seus aplicativos são afetados, consulte Manipulando uma nova era no calendário japonês no .NET. Para obter informações sobre como testar seus aplicativos em sistemas Windows para garantir sua preparação para a alteração da era, consulte Preparar seu aplicativo para a alteração da era japonesa. Para recursos no .NET que dão suporte a calendários com várias eras e para práticas recomendadas ao trabalhar com calendários que dão suporte a várias eras, consulte Trabalhando com eras.

O namespace System.Globalization fornece vários calendários que incluem GregorianCalendar e JulianCalendar.

Confira também

Aplica-se a

DateTime(Int32, Int32, Int32)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime para o ano, o mês e o dia especificados.

public:
 DateTime(int year, int month, int day);
public DateTime (int year, int month, int day);
new DateTime : int * int * int -> DateTime
Public Sub New (year As Integer, month As Integer, day As Integer)

Parâmetros

year
Int32

O ano (de 1 a 9999).

month
Int32

O mês (de 1 a 12).

day
Int32

O dia (1 até o número de dias em month).

Exceções

year é menor que 1 ou maior que 9999.

- ou -

month é menor que 1 ou maior que 12.

- ou -

day é menor que 1 ou maior que o número de dias em month.

Exemplos

O exemplo a seguir usa o DateTime(Int32, Int32, Int32) construtor para instanciar um DateTime valor. O exemplo também ilustra que essa sobrecarga cria um DateTime valor cujo componente de hora é igual à meia-noite (ou 0:00).

DateTime date1 = new DateTime(2010, 8, 18);
Console.WriteLine(date1.ToString());
// The example displays the following output:
//      8/18/2010 12:00:00 AM
let date1 = DateTime(2010, 8, 18)
printfn $"{date1}"

// The example displays the following output:
//      8/18/2010 12:00:00 AM
Dim date1 As New Date(2010, 8, 18)
Console.WriteLine(date1.ToString())
' The example displays the following output:
'      8/18/2010 12:00:00 AM

Comentários

Este construtor interpreta year, month e day como um ano, mês e um dia no calendário gregoriano. Para criar uma instância de um DateTime valor usando o ano, o mês e o dia em outro calendário, chame o DateTime(Int32, Int32, Int32, Calendar) construtor.

A hora do dia para o resultado DateTime é meia-noite (00:00:00). A propriedade Kind é inicializada com DateTimeKind.Unspecified.

Aplica-se a

DateTime(DateOnly, TimeOnly, DateTimeKind)

Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da DateTime estrutura para o especificado DateOnly e TimeOnly respeitando o especificado DateTimeKind.

public:
 DateTime(DateOnly date, TimeOnly time, DateTimeKind kind);
public DateTime (DateOnly date, TimeOnly time, DateTimeKind kind);
new DateTime : DateOnly * TimeOnly * DateTimeKind -> DateTime
Public Sub New (date As DateOnly, time As TimeOnly, kind As DateTimeKind)

Parâmetros

date
DateOnly

A parte de data.

time
TimeOnly

A parte de tempo.

kind
DateTimeKind

Um dos valores de enumeração que indica se date e especificam time uma hora local, UTC (Tempo Universal Coordenado) ou nenhum deles.

Aplica-se a

DateTime(Int64, DateTimeKind)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime para o número de tiques especificado e para o UTC (Tempo Universal Coordenado) ou para a hora local.

public:
 DateTime(long ticks, DateTimeKind kind);
public DateTime (long ticks, DateTimeKind kind);
new DateTime : int64 * DateTimeKind -> DateTime
Public Sub New (ticks As Long, kind As DateTimeKind)

Parâmetros

ticks
Int64

Uma data e hora expressada no número de intervalos de 100 nanossegundos decorridos desde 1º de janeiro, 0001 em 00:00:00.000 no calendário gregoriano.

kind
DateTimeKind

Um dos valores de enumeração que indica se ticks especificam a hora local, UTC (Tempo Universal Coordenado) ou nenhum dos dois.

Exceções

kind não é um dos valores DateTimeKind.

Comentários

Para aplicativos nos quais a portabilidade de dados de data e hora ou um grau limitado de reconhecimento do fuso horário seja importante, é possível usar o construtor DateTimeOffset correspondente.

Aplica-se a

DateTime(DateOnly, TimeOnly)

Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da DateTime estrutura para o especificado DateOnly e TimeOnly. A nova instância terá o Unspecified tipo .

public:
 DateTime(DateOnly date, TimeOnly time);
public DateTime (DateOnly date, TimeOnly time);
new DateTime : DateOnly * TimeOnly -> DateTime
Public Sub New (date As DateOnly, time As TimeOnly)

Parâmetros

date
DateOnly

A parte de data.

time
TimeOnly

A parte de tempo.

Aplica-se a

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Inicializa uma nova instância da estrutura DateTime para o ano, mês, dia, hora, minuto e segundo especificados para o calendário especificado.

public:
 DateTime(int year, int month, int day, int hour, int minute, int second, System::Globalization::Calendar ^ calendar);
public DateTime (int year, int month, int day, int hour, int minute, int second, System.Globalization.Calendar calendar);
new DateTime : int * int * int * int * int * int * System.Globalization.Calendar -> DateTime
Public Sub New (year As Integer, month As Integer, day As Integer, hour As Integer, minute As Integer, second As Integer, calendar As Calendar)

Parâmetros

year
Int32

O ano (de 1 até o número de anos em calendar).

month
Int32

O mês (1 até o número de meses em calendar).

day
Int32

O dia (1 até o número de dias em month).

hour
Int32

As horas (de 0 a 23).

minute
Int32

Os minutos (de 0 a 59).

second
Int32

Os segundos (de 0 a 59).

calendar
Calendar

O calendário usado para interpretar year, month e day.

Exceções

calendar é null.

year não está no intervalo suportado por calendar.

- ou -

month é menor que 1 ou maior que o número de meses em calendar.

- ou -

day é menor que 1 ou maior que o número de dias em month.

- ou -

hour é menor que 0 ou maior que 23

- ou -

minute é menor que 0 ou maior que 59.

- ou -

second é menor que 0 ou maior que 59.

Exemplos

O exemplo a seguir chama o DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar) construtor duas vezes para instanciar dois DateTime valores. A primeira chamada cria uma instância de um valor DateTime usando-se um objeto PersianCalendar. Como o calendário persa não pode ser designado como o calendário padrão para uma cultura, a exibição de uma data usando-se o calendário persa requer chamadas individuais para os métodos PersianCalendar.GetMonth, PersianCalendar.GetDayOfMonth e PersianCalendar.GetYear. A segunda chamada para o construtor cria uma instância de um valor DateTime usando-se um objeto HijriCalendar. O exemplo altera a cultura atual para árabe (Síria) e muda o calendário padrão da cultura atual para o calendário islâmico. Como Hijri é o calendário padrão da cultura atual, o método Console.WriteLine usa-o para formatar a data. Quando a cultura atual anterior (que é inglês (Estados Unidos) nesse caso) é restaurada, o método Console.WriteLine usa o calendário gregoriano padrão da cultura atual para formatar a data.

using System;
using System.Globalization;
using System.Text.RegularExpressions;
using System.Threading;

public class Example
{
   public static void Main()
   {
      Console.WriteLine("Using the Persian Calendar:");
      PersianCalendar persian = new PersianCalendar();
      DateTime date1 = new DateTime(1389, 5, 27, 16, 32, 0, persian);
      Console.WriteLine(date1.ToString());
      Console.WriteLine("{0}/{1}/{2} {3}{6}{4:D2}{6}{5:D2}\n",
                                       persian.GetMonth(date1),
                                       persian.GetDayOfMonth(date1),
                                       persian.GetYear(date1),
                                       persian.GetHour(date1),
                                       persian.GetMinute(date1),
                                       persian.GetSecond(date1),
                                       DateTimeFormatInfo.CurrentInfo.TimeSeparator);

      Console.WriteLine("Using the Hijri Calendar:");
      // Get current culture so it can later be restored.
      CultureInfo dftCulture = Thread.CurrentThread.CurrentCulture;

      // Define Hijri calendar.
      HijriCalendar hijri = new HijriCalendar();
      // Make ar-SY the current culture and Hijri the current calendar.
      Thread.CurrentThread.CurrentCulture = new CultureInfo("ar-SY");
      CultureInfo current = CultureInfo.CurrentCulture;
      current.DateTimeFormat.Calendar = hijri;
      string dFormat = current.DateTimeFormat.ShortDatePattern;
      // Ensure year is displayed as four digits.
      dFormat = Regex.Replace(dFormat, "/yy$", "/yyyy");
      current.DateTimeFormat.ShortDatePattern = dFormat;
      DateTime date2 = new DateTime(1431, 9, 9, 16, 32, 18, hijri);
      Console.WriteLine("{0} culture using the {1} calendar: {2:g}", current,
                        GetCalendarName(hijri), date2);

      // Restore previous culture.
      Thread.CurrentThread.CurrentCulture = dftCulture;
      Console.WriteLine("{0} culture using the {1} calendar: {2:g}",
                        CultureInfo.CurrentCulture,
                        GetCalendarName(CultureInfo.CurrentCulture.Calendar),
                        date2);
   }

   private static string GetCalendarName(Calendar cal)
   {
      return Regex.Match(cal.ToString(), "\\.(\\w+)Calendar").Groups[1].Value;
   }
}
// The example displays the following output:
//       Using the Persian Calendar:
//       8/18/2010 4:32:00 PM
//       5/27/1389 16:32:00
//
//       Using the Hijri Calendar:
//       ar-SY culture using the Hijri calendar: 09/09/1431 04:32 م
//       en-US culture using the Gregorian calendar: 8/18/2010 4:32 PM
open System
open System.Globalization
open System.Text.RegularExpressions
open System.Threading

let getCalendarName (cal: Calendar) =
    Regex.Match(string cal, "\\.(\\w+)Calendar").Groups[1].Value

printfn "Using the Persian Calendar:"
let persian = PersianCalendar()
let date1 = DateTime(1389, 5, 27, 16, 32, 0, persian)
printfn $"{date1}"
let sep = DateTimeFormatInfo.CurrentInfo.TimeSeparator
printfn $"{persian.GetMonth date1}/{persian.GetDayOfMonth date1}/{persian.GetYear date1} {persian.GetHour date1}{sep}%02i{persian.GetMinute date1}{sep}%02i{persian.GetSecond date1}\n"

printfn "Using the Hijri Calendar:"

// Get current culture so it can later be restored.
let dftCulture = Thread.CurrentThread.CurrentCulture

// Define Hijri calendar.
let hijri = HijriCalendar()

// Make ar-SY the current culture and Hijri the current calendar.
Thread.CurrentThread.CurrentCulture <- CultureInfo "ar-SY"
let current = CultureInfo.CurrentCulture
current.DateTimeFormat.Calendar <- hijri
let dFormat = 
    let dFormat = current.DateTimeFormat.ShortDatePattern
    // Ensure year is displayed as four digits.
    Regex.Replace(dFormat, "/yy$", "/yyyy")

current.DateTimeFormat.ShortDatePattern <- dFormat
let date2 = DateTime(1431, 9, 9, 16, 32, 18, hijri)
printfn $"{current} culture using the {getCalendarName hijri} calendar: {date2:g}"

// Restore previous culture.
Thread.CurrentThread.CurrentCulture <- dftCulture
printfn $"{CultureInfo.CurrentCulture} culture using the {getCalendarName CultureInfo.CurrentCulture.Calendar} calendar: {date2:g}"


// The example displays the following output:
//       Using the Persian Calendar:
//       8/18/2010 4:32:00 PM
//       5/27/1389 16:32:00
//
//       Using the Hijri Calendar:
//       ar-SY culture using the Hijri calendar: 09/09/1431 04:32 م
//       en-US culture using the Gregorian calendar: 8/18/2010 4:32 PM
Imports System.Globalization
Imports System.Text.RegularExpressions
Imports System.Threading

Module Example
   Public Sub Main()
      Console.WriteLine("Using the Persian Calendar:")
      Dim persian As New PersianCalendar()
      Dim date1 As New Date(1389, 5, 27, 16, 32, 0, persian)
      Console.WriteLine(date1.ToString())
      Console.WriteLine("{0}/{1}/{2} {3}{6}{4:D2}{6}{5:D2}", persian.GetMonth(date1), _
                                       persian.GetDayOfMonth(date1), _
                                       persian.GetYear(date1), _
                                       persian.GetHour(date1), _
                                       persian.GetMinute(date1), _
                                       persian.GetSecond(date1), _
                                       DateTimeFormatInfo.CurrentInfo.TimeSeparator)
      Console.WriteLine()
      
      Console.WriteLine("Using the Hijri Calendar:")
      ' Get current culture so it can later be restored.
      Dim dftCulture As CultureInfo = Thread.CurrentThread.CurrentCulture
      
      ' Define Hijri calendar.
      Dim hijri As New HijriCalendar()
      ' Make ar-SY the current culture and Hijri the current calendar.
      Thread.CurrentThread.CurrentCulture = New CultureInfo("ar-SY")
      Dim current As CultureInfo = CultureInfo.CurrentCulture
      current.DateTimeFormat.Calendar = hijri
      Dim dFormat As String = current.DateTimeFormat.ShortDatePattern
      ' Ensure year is displayed as four digits.
      dFormat = Regex.Replace(dFormat, "/yy$", "/yyyy")
      current.DateTimeFormat.ShortDatePattern = dFormat
      Dim date2 As New Date(1431, 9, 9, 16, 32, 0, hijri)
      Console.WriteLine("{0} culture using the {1} calendar: {2:g}", current, _
                        GetCalendarName(hijri), date2) 

      ' Restore previous culture.
      Thread.CurrentThread.CurrentCulture = dftCulture
      Console.WriteLine("{0} culture using the {1} calendar: {2:g}", _
                        CultureInfo.CurrentCulture, _
                        GetCalendarName(CultureInfo.CurrentCulture.Calendar), _
                        date2) 
   End Sub
   
   Private Function GetCalendarName(cal As Calendar) As String
      Return Regex.Match(cal.ToString(), "\.(\w+)Calendar").Groups(1).Value
   End Function
End Module
' The example displays the following output:
'       Using the Persian Calendar:
'       8/18/2010 4:32:00 PM
'       5/27/1389 16:32:00
'       
'       Using the Hijri Calendar:
'       ar-SY culture using the Hijri calendar: 09/09/1431 04:32 م
'       en-US culture using the Gregorian calendar: 8/18/2010 4:32 PM

Comentários

A propriedade Kind é inicializada com Unspecified.

Os valores permitidos para year, monthe day dependem calendarde . Uma exceção será lançada se a data e hora especificada não puder ser expressada usando-se calendar.

Importante

As eras nos calendários japoneses se baseiam no reinado do Imperador e, portanto, estão sujeitas a alterações. Por exemplo, 1º de maio de 2019 marcou o início da era Reiwa no JapaneseCalendar e no JapaneseLunisolarCalendar. Tal alteração de eras afeta todos os aplicativos que usam esses calendários. Para obter mais informações e determinar se seus aplicativos são afetados, consulte Manipulando uma nova era no calendário japonês no .NET. Para obter informações sobre como testar seus aplicativos em sistemas Windows para garantir sua preparação para a alteração da era, consulte Preparar seu aplicativo para a alteração da era japonesa. Para recursos no .NET que dão suporte a calendários com várias eras e para práticas recomendadas ao trabalhar com calendários que dão suporte a várias eras, consulte Trabalhando com eras.

O namespace System.Globalization fornece vários calendários que incluem GregorianCalendar e JulianCalendar.

Confira também

Aplica-se a