Поделиться через


DateTime Конструкторы

Определение

Инициализирует новый экземпляр DateTime структуры.

Перегрузки

Имя Описание
DateTime(Int64)

Инициализирует новый экземпляр DateTime структуры до указанного числа галок.

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

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду, миллисекунд и согласованное универсальное время (UTC) или локальное время для указанного календаря.

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

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду, миллисекунд и согласованное универсальное время (UTC) или локальное время для указанного календаря.

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

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду, миллисекунд и согласованное универсальное время (UTC) или локальное время для указанного календаря.

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

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду, миллисекунд и согласованное универсальное время (UTC) или локальное время для указанного календаря.

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

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду и миллисекунд для указанного календаря.

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

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду, миллисекунд и согласованное универсальное время (UTC) или локальное время.

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

Инициализирует новый экземпляр структуры до указанного DateTime года, месяца, дня, часа, минуты, секунды и миллисекунда.

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

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду, миллисекунд и согласованное универсальное время (UTC) или локальное время для указанного календаря.

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

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду и координированное универсальное время (UTC) или локальное время.

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

Инициализирует новый экземпляр структуры до указанного DateTime года, месяца, дня, часа, минуты и второй.

DateTime(Int32, Int32, Int32, Calendar)

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц и день для указанного календаря.

DateTime(Int32, Int32, Int32)

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц и день.

DateTime(DateOnly, TimeOnly, DateTimeKind)

Инициализирует новый экземпляр DateTime структуры указанным и TimeOnly уважает указанныйDateTimeKindDateOnly.

DateTime(Int64, DateTimeKind)

Инициализирует новый экземпляр DateTime структуры в заданное количество галок и в формате UTC или локальном времени.

DateTime(DateOnly, TimeOnly)

Инициализирует новый экземпляр DateTime структуры указанным DateOnly и TimeOnly. Новый экземпляр будет иметь Unspecified тип.

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

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту и секунду для указанного календаря.

DateTime(Int64)

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры до указанного числа галок.

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

Параметры

ticks
Int64

Дата и время, выраженные в количестве интервалов 100-nanosecond, прошедших с 1 января 0001 г. в 00:00:00.000 в григорианском календаре.

Исключения

ticks меньше DateTime.MinValue или больше DateTime.MaxValue.

Примеры

В следующем примере показан один из DateTime конструкторов.

// 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.
'

Комментарии

Свойство Kind инициализируется в Unspecified.

Для приложений, в которых важно переносить данные даты и времени или ограниченную степень осведомленности часового пояса, можно использовать соответствующий DateTimeOffset конструктор.

Применяется к

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

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду, миллисекунд и согласованное универсальное время (UTC) или локальное время для указанного календаря.

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)

Параметры

year
Int32

Год (от 1 до количества лет в calendar).

month
Int32

Месяц (от 1 до количества месяцев в calendar).

day
Int32

День (от 1 до количества дней в month).

hour
Int32

Часы (от 0 до 23).

minute
Int32

Минуты (от 0 до 59).

second
Int32

Секунды (от 0 до 59).

millisecond
Int32

Миллисекунда (от 0 до 999).

microsecond
Int32

Микросекунда (от 0 до 999).

calendar
Calendar

Календарь, используемый для интерпретации year, monthи day.

Исключения

calendar равен null

year не находится в диапазоне, поддерживаемом calendar.

–или–

month меньше 1 или больше количества месяцев в calendar.

–или–

day меньше 1 или больше, чем число дней в month.

–или–

hour меньше 0 или больше 23.

–или–

minute меньше 0 или больше 59.

–или–

second меньше 0 или больше 59.

–или–

millisecond меньше 0 или больше 999.

–или–

microsecond меньше 0 или больше 999.

Комментарии

Допустимые значения для yearmonthпараметров и day параметров зависят от calendar параметра. Исключение возникает, если указанная дата и время не могут быть выражены с помощью calendar.

Для приложений, в которых важно переносить данные даты и времени или ограниченную степень осведомленности часового пояса, можно использовать соответствующий DateTimeOffset конструктор.

Применяется к

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

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду, миллисекунд и согласованное универсальное время (UTC) или локальное время для указанного календаря.

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)

Параметры

year
Int32

Год (1–9999).

month
Int32

Месяц (от 1 до 12).

day
Int32

День (от 1 до количества дней в month).

hour
Int32

Часы (от 0 до 23).

minute
Int32

Минуты (от 0 до 59).

second
Int32

Секунды (от 0 до 59).

millisecond
Int32

Миллисекунда (от 0 до 999).

microsecond
Int32

Микросекунда (от 0 до 999).

kind
DateTimeKind

Одно из значений перечисления, указывающее, следует ли year, monthday, , hourи millisecondminutesecondуказать локальное время, согласованное универсальное время (UTC) или ни одно из них.

Исключения

year меньше 1 или больше 9999.

–или–

month меньше 1 или больше 12.

–или–

day меньше 1 или больше, чем число дней в month.

–или–

hour меньше 0 или больше 23.

–или–

minute меньше 0 или больше 59.

–или–

second меньше 0 или больше 59.

–или–

millisecond меньше 0 или больше 999.

–или–

microsecond меньше 0 или больше 999.

kind не является одним из значений DateTimeKind .

Комментарии

Этот конструктор интерпретирует и daymonth в виде года, месяца и дня в григорианском yearкалендаре. Чтобы создать DateTime экземпляр значения с помощью года, месяца и дня в другом календаре, вызовите DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) конструктор.

Для приложений, в которых важно переносить данные даты и времени или ограниченную степень осведомленности часового пояса, можно использовать соответствующий DateTimeOffset конструктор.

Применяется к

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

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду, миллисекунд и согласованное универсальное время (UTC) или локальное время для указанного календаря.

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)

Параметры

year
Int32

Год (от 1 до количества лет в calendar).

month
Int32

Месяц (от 1 до количества месяцев в calendar).

day
Int32

День (от 1 до количества дней в month).

hour
Int32

Часы (от 0 до 23).

minute
Int32

Минуты (от 0 до 59).

second
Int32

Секунды (от 0 до 59).

millisecond
Int32

Миллисекунда (от 0 до 999).

calendar
Calendar

Календарь, используемый для интерпретации year, monthи day.

kind
DateTimeKind

Одно из значений перечисления, указывающее, следует ли year, monthday, , hourи millisecondminutesecondуказать локальное время, согласованное универсальное время (UTC) или ни одно из них.

Исключения

calendar равно null.

year не находится в диапазоне, поддерживаемом calendar.

–или–

month меньше 1 или больше количества месяцев в calendar.

–или–

day меньше 1 или больше, чем число дней в month.

–или–

hour меньше 0 или больше 23.

–или–

minute меньше 0 или больше 59.

–или–

second меньше 0 или больше 59.

–или–

millisecond меньше 0 или больше 999.

kind не является одним из значений DateTimeKind .

Примеры

В следующем примере конструктор дважды вызывает DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) конструктор для создания экземпляра двух DateTime значений. Первый вызов создает DateTime экземпляр значения с помощью PersianCalendar объекта. Так как персидский календарь не может быть назначен в качестве календаря по умолчанию для языка и региональных параметров, отображение даты в персидском календаре требует отдельных вызовов для его PersianCalendar.GetMonthметодов PersianCalendar.GetDayOfMonthи PersianCalendar.GetYear методов. Второй вызов конструктора создает DateTime экземпляр значения с помощью HijriCalendar объекта. Пример изменяет текущий язык и региональные параметры на арабский (Сирия) и изменяет календарь текущего языка и региональных параметров на календарь Хиджри. Так как Хиджри является календарем по умолчанию текущего языка и региональных параметров, Console.WriteLine метод использует его для форматирования даты. При восстановлении предыдущего текущего языка и региональных параметров (который является английским (США) в этом случае, Console.WriteLine метод использует текущий календарь григорианского языка по умолчанию для форматирования даты.

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

Комментарии

Допустимые значения для yearmonthпараметров и day параметров зависят от calendar параметра. Исключение возникает, если указанная дата и время не могут быть выражены с помощью calendar.

Для приложений, в которых важно переносить данные даты и времени или ограниченную степень осведомленности часового пояса, можно использовать соответствующий DateTimeOffset конструктор.

Это важно

Эры в японских календарях основаны на царствии императора и поэтому, как ожидается, изменятся. Например, 1 мая 2019 г. отмечено начало эпохи Reiwa в JapaneseCalendar и JapaneseLunisolarCalendar. Такое изменение эпохи влияет на все приложения, использующие эти календари. Для получения дополнительной информации и определения влияния на ваши приложения см. статью Обработка новой эпохи в японском календаре в .NET. Сведения о тестировании ваших приложений на системах Windows для обеспечения их готовности к изменению эпохи см. в разделе Подготовка приложения к изменению японской эпохи. Функции в .NET, поддерживающие календари с несколькими эрами, и рекомендации по работе с календарями, поддерживающими несколько эпох, см. в разделе Работа с эрами.

Пространство System.Globalization имен предоставляет несколько календарей, включая GregorianCalendar и JulianCalendar.

Применяется к

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

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду, миллисекунд и согласованное универсальное время (UTC) или локальное время для указанного календаря.

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)

Параметры

year
Int32

Год (1–9999).

month
Int32

Месяц (от 1 до 12).

day
Int32

День (от 1 до количества дней в month).

hour
Int32

Часы (от 0 до 23).

minute
Int32

Минуты (от 0 до 59).

second
Int32

Секунды (от 0 до 59).

millisecond
Int32

Миллисекунда (от 0 до 999).

microsecond
Int32

Микросекунда (от 0 до 999).

Исключения

year меньше 1 или больше 9999.

–или–

month меньше 1 или больше 12.

–или–

day меньше 1 или больше, чем число дней в month.

–или–

hour меньше 0 или больше 23.

–или–

minute меньше 0 или больше 59.

–или–

second меньше 0 или больше 59.

–или–

millisecond меньше 0 или больше 999.

–или–

microsecond меньше 0 или больше 999.

Комментарии

Этот конструктор интерпретирует и daymonth в виде года, месяца и дня в григорианском yearкалендаре. Чтобы создать DateTime экземпляр значения с помощью года, месяца и дня в другом календаре, вызовите DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) конструктор.

Свойство Kind инициализируется в Unspecified.

Для приложений, в которых важно переносить данные даты и времени или ограниченную степень осведомленности часового пояса, можно использовать соответствующий DateTimeOffset конструктор.

Применяется к

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

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду и миллисекунд для указанного календаря.

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)

Параметры

year
Int32

Год (от 1 до количества лет в calendar).

month
Int32

Месяц (от 1 до количества месяцев в calendar).

day
Int32

День (от 1 до количества дней в month).

hour
Int32

Часы (от 0 до 23).

minute
Int32

Минуты (от 0 до 59).

second
Int32

Секунды (от 0 до 59).

millisecond
Int32

Миллисекунда (от 0 до 999).

calendar
Calendar

Календарь, используемый для интерпретации year, monthи day.

Исключения

calendar равно null.

year не находится в диапазоне, поддерживаемом calendar.

–или–

month меньше 1 или больше количества месяцев в calendar.

–или–

day меньше 1 или больше, чем число дней в month.

–или–

hour меньше 0 или больше 23.

–или–

minute меньше 0 или больше 59.

–или–

second меньше 0 или больше 59.

–или–

millisecond меньше 0 или больше 999.

Примеры

В следующем примере конструктор дважды вызывает DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) конструктор для создания экземпляра двух DateTime значений. Первый вызов создает DateTime экземпляр значения с помощью PersianCalendar объекта. Так как персидский календарь не может быть назначен в качестве календаря по умолчанию для языка и региональных параметров, отображение даты в персидском календаре требует отдельных вызовов для его PersianCalendar.GetMonthметодов PersianCalendar.GetDayOfMonthи PersianCalendar.GetYear методов. Второй вызов конструктора создает DateTime экземпляр значения с помощью HijriCalendar объекта. Пример изменяет текущий язык и региональные параметры на арабский (Сирия) и изменяет календарь текущего языка и региональных параметров на календарь Хиджри. Так как Хиджри является календарем по умолчанию текущего языка и региональных параметров, Console.WriteLine метод использует его для форматирования даты. При восстановлении предыдущего текущего языка и региональных параметров (который является английским (США) в этом случае, Console.WriteLine метод использует текущий календарь григорианского языка по умолчанию для форматирования даты.

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

Комментарии

Свойство Kind инициализируется в Unspecified.

Допустимые значения для year, monthи day зависят от calendar. Исключение возникает, если указанная дата и время не могут быть выражены с помощью calendar.

Для приложений, в которых важно переносить данные даты и времени или ограниченную степень осведомленности часового пояса, можно использовать соответствующий DateTimeOffset конструктор.

Это важно

Эры в японских календарях основаны на царствии императора и поэтому, как ожидается, изменятся. Например, 1 мая 2019 г. отмечено начало эпохи Reiwa в JapaneseCalendar и JapaneseLunisolarCalendar. Такое изменение эпохи влияет на все приложения, использующие эти календари. Для получения дополнительной информации и определения влияния на ваши приложения см. статью Обработка новой эпохи в японском календаре в .NET. Сведения о тестировании ваших приложений на системах Windows для обеспечения их готовности к изменению эпохи см. в разделе Подготовка приложения к изменению японской эпохи. Функции в .NET, поддерживающие календари с несколькими эрами, и рекомендации по работе с календарями, поддерживающими несколько эпох, см. в разделе Работа с эрами.

Пространство System.Globalization имен предоставляет несколько календарей, включая GregorianCalendar и JulianCalendar.

См. также раздел

Применяется к

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

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду, миллисекунд и согласованное универсальное время (UTC) или локальное время.

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)

Параметры

year
Int32

Год (1–9999).

month
Int32

Месяц (от 1 до 12).

day
Int32

День (от 1 до количества дней в month).

hour
Int32

Часы (от 0 до 23).

minute
Int32

Минуты (от 0 до 59).

second
Int32

Секунды (от 0 до 59).

millisecond
Int32

Миллисекунда (от 0 до 999).

kind
DateTimeKind

Одно из значений перечисления, указывающее, следует ли year, monthday, , hourи millisecondminutesecondуказать локальное время, согласованное универсальное время (UTC) или ни одно из них.

Исключения

year меньше 1 или больше 9999.

–или–

month меньше 1 или больше 12.

–или–

day меньше 1 или больше, чем число дней в month.

–или–

hour меньше 0 или больше 23.

–или–

minute меньше 0 или больше 59.

–или–

second меньше 0 или больше 59.

–или–

millisecond меньше 0 или больше 999.

kind не является одним из значений DateTimeKind .

Примеры

В следующем примере конструктор используется DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) для создания экземпляра DateTime значения.

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

Комментарии

Этот конструктор интерпретируетyear, monthа day также как год, месяц и день в григорианском календаре. Чтобы создать экземпляр DateTime значения с помощью года, месяца и дня в другом календаре, вызовите DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) конструктор.

Для приложений, в которых важно переносить данные даты и времени или ограниченную степень осведомленности часового пояса, можно использовать соответствующий DateTimeOffset конструктор.

Применяется к

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

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр структуры до указанного DateTime года, месяца, дня, часа, минуты, секунды и миллисекунда.

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)

Параметры

year
Int32

Год (1–9999).

month
Int32

Месяц (от 1 до 12).

day
Int32

День (от 1 до количества дней в month).

hour
Int32

Часы (от 0 до 23).

minute
Int32

Минуты (от 0 до 59).

second
Int32

Секунды (от 0 до 59).

millisecond
Int32

Миллисекунда (от 0 до 999).

Исключения

year меньше 1 или больше 9999.

–или–

month меньше 1 или больше 12.

–или–

day меньше 1 или больше, чем число дней в month.

–или–

hour меньше 0 или больше 23.

–или–

minute меньше 0 или больше 59.

–или–

second меньше 0 или больше 59.

–или–

millisecond меньше 0 или больше 999.

Примеры

В следующем примере конструктор используется DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32) для создания экземпляра DateTime значения.

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

Комментарии

Этот конструктор интерпретируетyear, monthа day также как год, месяц и день в григорианском календаре. Чтобы создать экземпляр DateTime значения с помощью года, месяца и дня в другом календаре, вызовите DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) конструктор.

Свойство Kind инициализируется в Unspecified.

Для приложений, в которых важно переносить данные даты и времени или ограниченную степень осведомленности часового пояса, можно использовать соответствующий DateTimeOffset конструктор.

См. также раздел

Применяется к

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

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду, миллисекунд и согласованное универсальное время (UTC) или локальное время для указанного календаря.

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)

Параметры

year
Int32

Год (от 1 до количества лет в calendar).

month
Int32

Месяц (от 1 до количества месяцев в calendar).

day
Int32

День (от 1 до количества дней в month).

hour
Int32

Часы (от 0 до 23).

minute
Int32

Минуты (от 0 до 59).

second
Int32

Секунды (от 0 до 59).

millisecond
Int32

Миллисекунда (от 0 до 999).

microsecond
Int32

Микросекунда (от 0 до 999).

calendar
Calendar

Календарь, используемый для интерпретации year, monthи day.

kind
DateTimeKind

Одно из значений перечисления, указывающее, следует ли year, monthday, , hourи millisecondminutesecondуказать локальное время, согласованное универсальное время (UTC) или ни одно из них.

Исключения

calendar равен null

year не находится в диапазоне, поддерживаемом calendar.

–или–

month меньше 1 или больше количества месяцев в calendar.

–или–

day меньше 1 или больше, чем число дней в month.

–или–

hour меньше 0 или больше 23.

–или–

minute меньше 0 или больше 59.

–или–

second меньше 0 или больше 59.

–или–

millisecond меньше 0 или больше 999.

–или–

microsecond меньше 0 или больше 999.

kind не является одним из значений DateTimeKind .

Комментарии

Допустимые значения для yearmonthпараметров и day параметров зависят от calendar параметра. Исключение возникает, если указанная дата и время не могут быть выражены с помощью calendar.

Для приложений, в которых важно переносить данные даты и времени или ограниченную степень осведомленности часового пояса, можно использовать соответствующий DateTimeOffset конструктор.

Применяется к

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

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту, секунду и координированное универсальное время (UTC) или локальное время.

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)

Параметры

year
Int32

Год (1–9999).

month
Int32

Месяц (от 1 до 12).

day
Int32

День (от 1 до количества дней в month).

hour
Int32

Часы (от 0 до 23).

minute
Int32

Минуты (от 0 до 59).

second
Int32

Секунды (от 0 до 59).

kind
DateTimeKind

Одно из значений перечисления, указывающее, указывает ли year, minutehourmonthday, и second указать локальное время, согласованное универсальное время (UTC) или ни одно из них.

Исключения

year меньше 1 или больше 9999.

–или–

month меньше 1 или больше 12.

–или–

day меньше 1 или больше, чем число дней в month.

–или–

hour меньше 0 или больше 23.

–или–

minute меньше 0 или больше 59.

–или–

second меньше 0 или больше 59.

kind не является одним из значений DateTimeKind .

Примеры

В следующем примере конструктор используется DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) для создания экземпляра DateTime значения.

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

Комментарии

Этот конструктор интерпретируетyear, monthа day также как год, месяц и день в григорианском календаре. Чтобы создать экземпляр DateTime значения с помощью года, месяца и дня в другом календаре, вызовите DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) конструктор.

Для приложений, в которых важно переносить данные даты и времени или ограниченную степень осведомленности часового пояса, можно использовать соответствующий DateTimeOffset конструктор.

Применяется к

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

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр структуры до указанного DateTime года, месяца, дня, часа, минуты и второй.

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)

Параметры

year
Int32

Год (1–9999).

month
Int32

Месяц (от 1 до 12).

day
Int32

День (от 1 до количества дней в month).

hour
Int32

Часы (от 0 до 23).

minute
Int32

Минуты (от 0 до 59).

second
Int32

Секунды (от 0 до 59).

Исключения

year меньше 1 или больше 9999.

–или–

month меньше 1 или больше 12.

–или–

day меньше 1 или больше, чем число дней в month.

–или–

hour меньше 0 или больше 23.

–или–

minute меньше 0 или больше 59.

–или–

second меньше 0 или больше 59.

Примеры

В следующем примере конструктор используется DateTime для создания экземпляра DateTime значения.

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

Комментарии

Свойство Kind инициализируется в Unspecified.

Этот конструктор интерпретируетyear, monthа day также как год, месяц и день в григорианском календаре. Чтобы создать экземпляр DateTime значения с помощью года, месяца и дня в другом календаре, вызовите DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar) конструктор.

Для приложений, в которых важно переносить данные даты и времени или ограниченную степень осведомленности часового пояса, можно использовать соответствующий DateTimeOffset конструктор.

Применяется к

DateTime(Int32, Int32, Int32, Calendar)

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц и день для указанного календаря.

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)

Параметры

year
Int32

Год (от 1 до количества лет в calendar).

month
Int32

Месяц (от 1 до количества месяцев в calendar).

day
Int32

День (от 1 до количества дней в month).

calendar
Calendar

Календарь, используемый для интерпретации year, monthи day.

Исключения

calendar равно null.

year не находится в диапазоне, поддерживаемом calendar.

–или–

month меньше 1 или больше количества месяцев в calendar.

–или–

day меньше 1 или больше, чем число дней в month.

Примеры

В следующем примере конструктор дважды вызывает DateTime(Int32, Int32, Int32, Calendar) конструктор для создания экземпляра двух DateTime значений. Первый вызов создает DateTime экземпляр значения с помощью PersianCalendar объекта. Так как персидский календарь не может быть назначен в качестве календаря по умолчанию для языка и региональных параметров, отображение даты в персидском календаре требует отдельных вызовов для его PersianCalendar.GetMonthметодов PersianCalendar.GetDayOfMonthи PersianCalendar.GetYear методов. Второй вызов конструктора создает DateTime экземпляр значения с помощью HijriCalendar объекта. Пример изменяет текущий язык и региональные параметры на арабский (Сирия) и изменяет календарь текущего языка и региональных параметров на календарь Хиджри. Так как Хиджри является календарем по умолчанию текущего языка и региональных параметров, Console.WriteLine метод использует его для форматирования даты. При восстановлении предыдущего текущего языка и региональных параметров (который является английским (США) в этом случае, Console.WriteLine метод использует текущий календарь григорианского языка по умолчанию для форматирования даты.

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

Комментарии

Время дня для результирующего DateTime значения равно полуночи (00:00:00). Свойство Kind инициализируется в Unspecified.

Допустимые значения для year, monthи day зависят от calendar. Исключение возникает, если указанная дата и время не могут быть выражены с помощью calendar.

Это важно

Эры в японских календарях основаны на царствии императора и поэтому, как ожидается, изменятся. Например, 1 мая 2019 г. отмечено начало эпохи Reiwa в JapaneseCalendar и JapaneseLunisolarCalendar. Такое изменение эпохи влияет на все приложения, использующие эти календари. Для получения дополнительной информации и определения влияния на ваши приложения см. статью Обработка новой эпохи в японском календаре в .NET. Сведения о тестировании ваших приложений на системах Windows для обеспечения их готовности к изменению эпохи см. в разделе Подготовка приложения к изменению японской эпохи. Функции в .NET, поддерживающие календари с несколькими эрами, и рекомендации по работе с календарями, поддерживающими несколько эпох, см. в разделе Работа с эрами.

Пространство System.Globalization имен предоставляет несколько календарей, включая GregorianCalendar и JulianCalendar.

См. также раздел

Применяется к

DateTime(Int32, Int32, Int32)

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц и день.

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)

Параметры

year
Int32

Год (1–9999).

month
Int32

Месяц (от 1 до 12).

day
Int32

День (от 1 до количества дней в month).

Исключения

year меньше 1 или больше 9999.

–или–

month меньше 1 или больше 12.

–или–

day меньше 1 или больше, чем число дней в month.

Примеры

В следующем примере конструктор используется DateTime(Int32, Int32, Int32) для создания экземпляра DateTime значения. В примере также показано, что эта перегрузка создает DateTime значение, время которого равен полуночи (или 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

Комментарии

Этот конструктор интерпретирует year, monthа day также как год, месяц и день в григорианском календаре. Чтобы создать экземпляр DateTime значения с помощью года, месяца и дня в другом календаре, вызовите DateTime(Int32, Int32, Int32, Calendar) конструктор.

Время дня для результирующего DateTime значения равно полуночи (00:00:00). Свойство Kind инициализируется в DateTimeKind.Unspecified.

Применяется к

DateTime(DateOnly, TimeOnly, DateTimeKind)

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры указанным и TimeOnly уважает указанныйDateTimeKindDateOnly.

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)

Параметры

date
DateOnly

Часть даты.

time
TimeOnly

Часть времени.

kind
DateTimeKind

Одно из значений перечисления, указывающее, следует ли datetime указывать локальное время, согласованное универсальное время (UTC) или ни одно из них.

Применяется к

DateTime(Int64, DateTimeKind)

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры в заданное количество галок и в формате UTC или локальном времени.

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)

Параметры

ticks
Int64

Дата и время, выраженные в количестве интервалов 100-nanosecond, прошедших с 1 января 0001 г. в 00:00:00.000 в григорианском календаре.

kind
DateTimeKind

Одно из значений перечисления, указывающее, указывает ли ticks локальное время, согласованное универсальное время (UTC) или ни одно из них.

Исключения

ticks меньше DateTime.MinValue или больше DateTime.MaxValue.

kind не является одним из значений DateTimeKind .

Комментарии

Для приложений, в которых важно переносить данные даты и времени или ограниченную степень осведомленности часового пояса, можно использовать соответствующий DateTimeOffset конструктор.

Применяется к

DateTime(DateOnly, TimeOnly)

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры указанным DateOnly и TimeOnly. Новый экземпляр будет иметь Unspecified тип.

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)

Параметры

date
DateOnly

Часть даты.

time
TimeOnly

Часть времени.

Применяется к

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

Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs
Исходный код:
DateTime.cs

Инициализирует новый экземпляр DateTime структуры в указанный год, месяц, день, час, минуту и секунду для указанного календаря.

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)

Параметры

year
Int32

Год (от 1 до количества лет в calendar).

month
Int32

Месяц (от 1 до количества месяцев в calendar).

day
Int32

День (от 1 до количества дней в month).

hour
Int32

Часы (от 0 до 23).

minute
Int32

Минуты (от 0 до 59).

second
Int32

Секунды (от 0 до 59).

calendar
Calendar

Календарь, используемый для интерпретации year, monthи day.

Исключения

calendar равно null.

year не находится в диапазоне, поддерживаемом calendar.

–или–

month меньше 1 или больше количества месяцев в calendar.

–или–

day меньше 1 или больше, чем число дней в month.

–или–

hour меньше 0 или больше 23

–или–

minute меньше 0 или больше 59.

–или–

second меньше 0 или больше 59.

Примеры

В следующем примере конструктор дважды вызывает DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar) конструктор для создания экземпляра двух DateTime значений. Первый вызов создает DateTime экземпляр значения с помощью PersianCalendar объекта. Так как персидский календарь не может быть назначен в качестве календаря по умолчанию для языка и региональных параметров, отображение даты в персидском календаре требует отдельных вызовов для его PersianCalendar.GetMonthметодов PersianCalendar.GetDayOfMonthи PersianCalendar.GetYear методов. Второй вызов конструктора создает DateTime экземпляр значения с помощью HijriCalendar объекта. Пример изменяет текущий язык и региональные параметры на арабский (Сирия) и изменяет календарь текущего языка и региональных параметров на календарь Хиджри. Так как Хиджри является календарем по умолчанию текущего языка и региональных параметров, Console.WriteLine метод использует его для форматирования даты. При восстановлении предыдущего текущего языка и региональных параметров (который является английским (США) в этом случае, Console.WriteLine метод использует текущий календарь григорианского языка по умолчанию для форматирования даты.

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

Комментарии

Свойство Kind инициализируется в Unspecified.

Допустимые значения для year, monthи day зависят от calendar. Исключение возникает, если указанная дата и время не могут быть выражены с помощью calendar.

Это важно

Эры в японских календарях основаны на царствии императора и поэтому, как ожидается, изменятся. Например, 1 мая 2019 г. отмечено начало эпохи Reiwa в JapaneseCalendar и JapaneseLunisolarCalendar. Такое изменение эпохи влияет на все приложения, использующие эти календари. Для получения дополнительной информации и определения влияния на ваши приложения см. статью Обработка новой эпохи в японском календаре в .NET. Сведения о тестировании ваших приложений на системах Windows для обеспечения их готовности к изменению эпохи см. в разделе Подготовка приложения к изменению японской эпохи. Функции в .NET, поддерживающие календари с несколькими эрами, и рекомендации по работе с календарями, поддерживающими несколько эпох, см. в разделе Работа с эрами.

Пространство System.Globalization имен предоставляет несколько календарей, включая GregorianCalendar и JulianCalendar.

См. также раздел

Применяется к