DateTime Constructors
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Initializes a new instance of the DateTime structure.
Overloads
DateTime(Int64) |
Initializes a new instance of the DateTime structure to a specified number of ticks. |
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) |
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, millisecond, and Coordinated Universal Time (UTC) or local time for the specified calendar. |
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) |
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, millisecond, and Coordinated Universal Time (UTC) or local time for the specified calendar. |
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) |
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, millisecond, and Coordinated Universal Time (UTC) or local time for the specified calendar. |
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32) |
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, millisecond, and Coordinated Universal Time (UTC) or local time for the specified calendar. |
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) |
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, and millisecond for the specified calendar. |
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) |
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, millisecond, and Coordinated Universal Time (UTC) or local time. |
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32) |
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, and millisecond. |
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) |
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, millisecond, and Coordinated Universal Time (UTC) or local time for the specified calendar. |
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) |
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, and Coordinated Universal Time (UTC) or local time. |
DateTime(Int32, Int32, Int32, Int32, Int32, Int32) |
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, and second. |
DateTime(Int32, Int32, Int32, Calendar) |
Initializes a new instance of the DateTime structure to the specified year, month, and day for the specified calendar. |
DateTime(Int32, Int32, Int32) |
Initializes a new instance of the DateTime structure to the specified year, month, and day. |
DateTime(DateOnly, TimeOnly, DateTimeKind) |
Initializes a new instance of the DateTime structure to the specified DateOnly and TimeOnly and respecting the specified DateTimeKind. |
DateTime(Int64, DateTimeKind) |
Initializes a new instance of the DateTime structure to a specified number of ticks and to Coordinated Universal Time (UTC) or local time. |
DateTime(DateOnly, TimeOnly) |
Initializes a new instance of the DateTime structure to the specified DateOnly and TimeOnly. The new instance will have the Unspecified kind. |
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar) |
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, and second for the specified calendar. |
DateTime(Int64)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to a specified number of ticks.
public:
DateTime(long ticks);
public DateTime (long ticks);
new DateTime : int64 -> DateTime
Public Sub New (ticks As Long)
Parameters
- ticks
- Int64
A date and time expressed in the number of 100-nanosecond intervals that have elapsed since January 1, 0001 at 00:00:00.000 in the Gregorian calendar.
Exceptions
ticks
is less than DateTime.MinValue or greater than DateTime.MaxValue.
Examples
The following example demonstrates one of the DateTime constructors.
// 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.
'
Remarks
The Kind property is initialized to Unspecified.
For applications in which portability of date and time data or a limited degree of time zone awareness is important, you can use the corresponding DateTimeOffset constructor.
Applies to
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, millisecond, and Coordinated Universal Time (UTC) or local time for the specified calendar.
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)
Parameters
- year
- Int32
The year (1 through the number of years in calendar
).
- month
- Int32
The month (1 through the number of months in calendar
).
- day
- Int32
The day (1 through the number of days in month
).
- hour
- Int32
The hours (0 through 23).
- minute
- Int32
The minutes (0 through 59).
- second
- Int32
The seconds (0 through 59).
- millisecond
- Int32
The milliseconds (0 through 999).
- microsecond
- Int32
The microseconds (0 through 999).
- calendar
- Calendar
The calendar that is used to interpret year
, month
, and day
.
Exceptions
calendar
is null
year
is not in the range supported by calendar
.
-or-
month
is less than 1 or greater than the number of months in calendar
.
-or-
day
is less than 1 or greater than the number of days in month
.
-or-
hour
is less than 0 or greater than 23.
-or-
minute
is less than 0 or greater than 59.
-or-
second
is less than 0 or greater than 59.
-or-
millisecond
is less than 0 or greater than 999.
-or-
microsecond
is less than 0 or greater than 999.
Remarks
The allowable values for year
, month
, and day
parameters
depend on the calendar
parameter. An exception is thrown if the specified date and time cannot
be expressed using calendar
.
For applications in which portability of date and time data or a limited degree of time zone awareness is important, you can use the corresponding DateTimeOffset constructor.
Applies to
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, millisecond, and Coordinated Universal Time (UTC) or local time for the specified calendar.
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)
Parameters
- year
- Int32
The year (1 through 9999).
- month
- Int32
The month (1 through 12).
- day
- Int32
The day (1 through the number of days in month
).
- hour
- Int32
The hours (0 through 23).
- minute
- Int32
The minutes (0 through 59).
- second
- Int32
The seconds (0 through 59).
- millisecond
- Int32
The milliseconds (0 through 999).
- microsecond
- Int32
The microseconds (0 through 999).
- kind
- DateTimeKind
One of the enumeration values that indicates whether year
, month
, day
, hour
, minute
, second
, and millisecond
specify a local time, Coordinated Universal Time (UTC), or neither.
Exceptions
year
is less than 1 or greater than 9999.
-or-
month
is less than 1 or greater than 12.
-or-
day
is less than 1 or greater than the number of days in month
.
-or-
hour
is less than 0 or greater than 23.
-or-
minute
is less than 0 or greater than 59.
-or-
second
is less than 0 or greater than 59.
-or-
millisecond
is less than 0 or greater than 999.
-or-
microsecond
is less than 0 or greater than 999.
kind
is not one of the DateTimeKind values.
Remarks
This constructor interprets year
, month
and day
as a year, month and day
in the Gregorian calendar. To instantiate a DateTime value by using the year, month and day in another calendar, call
the DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) constructor.
For applications in which portability of date and time data or a limited degree of time zone awareness is important, you can use the corresponding DateTimeOffset constructor.
Applies to
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, millisecond, and Coordinated Universal Time (UTC) or local time for the specified calendar.
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)
Parameters
- year
- Int32
The year (1 through the number of years in calendar
).
- month
- Int32
The month (1 through the number of months in calendar
).
- day
- Int32
The day (1 through the number of days in month
).
- hour
- Int32
The hours (0 through 23).
- minute
- Int32
The minutes (0 through 59).
- second
- Int32
The seconds (0 through 59).
- millisecond
- Int32
The milliseconds (0 through 999).
- calendar
- Calendar
The calendar that is used to interpret year
, month
, and day
.
- kind
- DateTimeKind
One of the enumeration values that indicates whether year
, month
, day
, hour
, minute
, second
, and millisecond
specify a local time, Coordinated Universal Time (UTC), or neither.
Exceptions
calendar
is null
.
year
is not in the range supported by calendar
.
-or-
month
is less than 1 or greater than the number of months in calendar
.
-or-
day
is less than 1 or greater than the number of days in month
.
-or-
hour
is less than 0 or greater than 23.
-or-
minute
is less than 0 or greater than 59.
-or-
second
is less than 0 or greater than 59.
-or-
millisecond
is less than 0 or greater than 999.
kind
is not one of the DateTimeKind values.
Examples
The following example calls the DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) constructor twice to instantiate two DateTime values. The first call instantiates a DateTime value by using a PersianCalendar object. Because the Persian calendar cannot be designated as the default calendar for a culture, displaying a date in the Persian calendar requires individual calls to its PersianCalendar.GetMonth, PersianCalendar.GetDayOfMonth, and PersianCalendar.GetYear methods. The second call to the constructor instantiates a DateTime value by using a HijriCalendar object. The example changes the current culture to Arabic (Syria) and changes the current culture's default calendar to the Hijri calendar. Because Hijri is the current culture's default calendar, the Console.WriteLine method uses it to format the date. When the previous current culture (which is English (United States) in this case) is restored, the Console.WriteLine method uses the current culture's default Gregorian calendar to format the date.
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
Remarks
The allowable values for year
, month
, and day
parameters depend on the calendar
parameter. An exception is thrown if the specified date and time cannot be expressed using calendar
.
For applications in which portability of date and time data or a limited degree of time zone awareness is important, you can use the corresponding DateTimeOffset constructor.
Important
Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. Such a change of era affects all applications that use these calendars. For more information and to determine whether your applications are affected, see Handling a new era in the Japanese calendar in .NET. For information on testing your applications on Windows systems to ensure their readiness for the era change, see Prepare your application for the Japanese era change. For features in .NET that support calendars with multiple eras and for best practices when working with calendars that support multiple eras, see Working with eras.
The System.Globalization namespace provides several calendars including GregorianCalendar and JulianCalendar.
Applies to
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, millisecond, and Coordinated Universal Time (UTC) or local time for the specified calendar.
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)
Parameters
- year
- Int32
The year (1 through 9999).
- month
- Int32
The month (1 through 12).
- day
- Int32
The day (1 through the number of days in month
).
- hour
- Int32
The hours (0 through 23).
- minute
- Int32
The minutes (0 through 59).
- second
- Int32
The seconds (0 through 59).
- millisecond
- Int32
The milliseconds (0 through 999).
- microsecond
- Int32
The microseconds (0 through 999).
Exceptions
year
is less than 1 or greater than 9999.
-or-
month
is less than 1 or greater than 12.
-or-
day
is less than 1 or greater than the number of days in month
.
-or-
hour
is less than 0 or greater than 23.
-or-
minute
is less than 0 or greater than 59.
-or-
second
is less than 0 or greater than 59.
-or-
millisecond
is less than 0 or greater than 999.
-or-
microsecond
is less than 0 or greater than 999.
Remarks
This constructor interprets year
, month
and day
as a year, month and day
in the Gregorian calendar. To instantiate a DateTime value by using the year, month and day in another calendar, call
the DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) constructor.
The Kind property is initialized to Unspecified.
For applications in which portability of date and time data or a limited degree of time zone awareness is important, you can use the corresponding DateTimeOffset constructor.
Applies to
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, and millisecond for the specified calendar.
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)
Parameters
- year
- Int32
The year (1 through the number of years in calendar
).
- month
- Int32
The month (1 through the number of months in calendar
).
- day
- Int32
The day (1 through the number of days in month
).
- hour
- Int32
The hours (0 through 23).
- minute
- Int32
The minutes (0 through 59).
- second
- Int32
The seconds (0 through 59).
- millisecond
- Int32
The milliseconds (0 through 999).
- calendar
- Calendar
The calendar that is used to interpret year
, month
, and day
.
Exceptions
calendar
is null
.
year
is not in the range supported by calendar
.
-or-
month
is less than 1 or greater than the number of months in calendar
.
-or-
day
is less than 1 or greater than the number of days in month
.
-or-
hour
is less than 0 or greater than 23.
-or-
minute
is less than 0 or greater than 59.
-or-
second
is less than 0 or greater than 59.
-or-
millisecond
is less than 0 or greater than 999.
Examples
The following example calls the DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) constructor twice to instantiate two DateTime values. The first call instantiates a DateTime value by using a PersianCalendar object. Because the Persian calendar cannot be designated as the default calendar for a culture, displaying a date in the Persian calendar requires individual calls to its PersianCalendar.GetMonth, PersianCalendar.GetDayOfMonth, and PersianCalendar.GetYear methods. The second call to the constructor instantiates a DateTime value by using a HijriCalendar object. The example changes the current culture to Arabic (Syria) and changes the current culture's default calendar to the Hijri calendar. Because Hijri is the current culture's default calendar, the Console.WriteLine method uses it to format the date. When the previous current culture (which is English (United States) in this case) is restored, the Console.WriteLine method uses the current culture's default Gregorian calendar to format the date.
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
Remarks
The Kind property is initialized to Unspecified.
The allowable values for year
, month
, and day
depend on calendar
. An exception is thrown if the specified date and time cannot be expressed using calendar
.
For applications in which portability of date and time data or a limited degree of time zone awareness is important, you can use the corresponding DateTimeOffset constructor.
Important
Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. Such a change of era affects all applications that use these calendars. For more information and to determine whether your applications are affected, see Handling a new era in the Japanese calendar in .NET. For information on testing your applications on Windows systems to ensure their readiness for the era change, see Prepare your application for the Japanese era change. For features in .NET that support calendars with multiple eras and for best practices when working with calendars that support multiple eras, see Working with eras.
The System.Globalization namespace provides several calendars including GregorianCalendar and JulianCalendar.
See also
Applies to
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, millisecond, and Coordinated Universal Time (UTC) or local time.
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)
Parameters
- year
- Int32
The year (1 through 9999).
- month
- Int32
The month (1 through 12).
- day
- Int32
The day (1 through the number of days in month
).
- hour
- Int32
The hours (0 through 23).
- minute
- Int32
The minutes (0 through 59).
- second
- Int32
The seconds (0 through 59).
- millisecond
- Int32
The milliseconds (0 through 999).
- kind
- DateTimeKind
One of the enumeration values that indicates whether year
, month
, day
, hour
, minute
, second
, and millisecond
specify a local time, Coordinated Universal Time (UTC), or neither.
Exceptions
year
is less than 1 or greater than 9999.
-or-
month
is less than 1 or greater than 12.
-or-
day
is less than 1 or greater than the number of days in month
.
-or-
hour
is less than 0 or greater than 23.
-or-
minute
is less than 0 or greater than 59.
-or-
second
is less than 0 or greater than 59.
-or-
millisecond
is less than 0 or greater than 999.
kind
is not one of the DateTimeKind values.
Examples
The following example uses the DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) constructor to instantiate a DateTime value.
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
Remarks
This constructor interpretsyear
, month
, and day
as a year, month, and day in the Gregorian calendar. To instantiate a DateTime value by using the year, month, and day in another calendar, call the DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) constructor.
For applications in which portability of date and time data or a limited degree of time zone awareness is important, you can use the corresponding DateTimeOffset constructor.
Applies to
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, and millisecond.
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)
Parameters
- year
- Int32
The year (1 through 9999).
- month
- Int32
The month (1 through 12).
- day
- Int32
The day (1 through the number of days in month
).
- hour
- Int32
The hours (0 through 23).
- minute
- Int32
The minutes (0 through 59).
- second
- Int32
The seconds (0 through 59).
- millisecond
- Int32
The milliseconds (0 through 999).
Exceptions
year
is less than 1 or greater than 9999.
-or-
month
is less than 1 or greater than 12.
-or-
day
is less than 1 or greater than the number of days in month
.
-or-
hour
is less than 0 or greater than 23.
-or-
minute
is less than 0 or greater than 59.
-or-
second
is less than 0 or greater than 59.
-or-
millisecond
is less than 0 or greater than 999.
Examples
The following example uses the DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32) constructor to instantiate a DateTime value.
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
Remarks
This constructor interpretsyear
, month
, and day
as a year, month, and day in the Gregorian calendar. To instantiate a DateTime value by using the year, month, and day in another calendar, call the DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) constructor.
The Kind property is initialized to Unspecified.
For applications in which portability of date and time data or a limited degree of time zone awareness is important, you can use the corresponding DateTimeOffset constructor.
See also
Applies to
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, millisecond, and Coordinated Universal Time (UTC) or local time for the specified calendar.
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)
Parameters
- year
- Int32
The year (1 through the number of years in calendar
).
- month
- Int32
The month (1 through the number of months in calendar
).
- day
- Int32
The day (1 through the number of days in month
).
- hour
- Int32
The hours (0 through 23).
- minute
- Int32
The minutes (0 through 59).
- second
- Int32
The seconds (0 through 59).
- millisecond
- Int32
The milliseconds (0 through 999).
- microsecond
- Int32
The microseconds (0 through 999).
- calendar
- Calendar
The calendar that is used to interpret year
, month
, and day
.
- kind
- DateTimeKind
One of the enumeration values that indicates whether year
, month
, day
, hour
, minute
, second
, and millisecond
specify a local time, Coordinated Universal Time (UTC), or neither.
Exceptions
calendar
is null
year
is not in the range supported by calendar
.
-or-
month
is less than 1 or greater than the number of months in calendar
.
-or-
day
is less than 1 or greater than the number of days in month
.
-or-
hour
is less than 0 or greater than 23.
-or-
minute
is less than 0 or greater than 59.
-or-
second
is less than 0 or greater than 59.
-or-
millisecond
is less than 0 or greater than 999.
-or-
microsecond
is less than 0 or greater than 999.
kind
is not one of the DateTimeKind values.
Remarks
The allowable values for year
, month
, and day
parameters
depend on the calendar
parameter. An exception is thrown if the specified date and time cannot
be expressed using calendar
.
For applications in which portability of date and time data or a limited degree of time zone awareness is important, you can use the corresponding DateTimeOffset constructor.
Applies to
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, and Coordinated Universal Time (UTC) or local time.
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)
Parameters
- year
- Int32
The year (1 through 9999).
- month
- Int32
The month (1 through 12).
- day
- Int32
The day (1 through the number of days in month
).
- hour
- Int32
The hours (0 through 23).
- minute
- Int32
The minutes (0 through 59).
- second
- Int32
The seconds (0 through 59).
- kind
- DateTimeKind
One of the enumeration values that indicates whether year
, month
, day
, hour
, minute
and second
specify a local time, Coordinated Universal Time (UTC), or neither.
Exceptions
year
is less than 1 or greater than 9999.
-or-
month
is less than 1 or greater than 12.
-or-
day
is less than 1 or greater than the number of days in month
.
-or-
hour
is less than 0 or greater than 23.
-or-
minute
is less than 0 or greater than 59.
-or-
second
is less than 0 or greater than 59.
kind
is not one of the DateTimeKind values.
Examples
The following example uses the DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) constructor to instantiate a DateTime value.
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
Remarks
This constructor interpretsyear
, month
, and day
as a year, month, and day in the Gregorian calendar. To instantiate a DateTime value by using the year, month, and day in another calendar, call the DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) constructor.
For applications in which portability of date and time data or a limited degree of time zone awareness is important, you can use the corresponding DateTimeOffset constructor.
Applies to
DateTime(Int32, Int32, Int32, Int32, Int32, Int32)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, and second.
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)
Parameters
- year
- Int32
The year (1 through 9999).
- month
- Int32
The month (1 through 12).
- day
- Int32
The day (1 through the number of days in month
).
- hour
- Int32
The hours (0 through 23).
- minute
- Int32
The minutes (0 through 59).
- second
- Int32
The seconds (0 through 59).
Exceptions
year
is less than 1 or greater than 9999.
-or-
month
is less than 1 or greater than 12.
-or-
day
is less than 1 or greater than the number of days in month
.
-or-
hour
is less than 0 or greater than 23.
-or-
minute
is less than 0 or greater than 59.
-or-
second
is less than 0 or greater than 59.
Examples
The following example uses the DateTime constructor to instantiate a DateTime value.
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
Remarks
The Kind property is initialized to Unspecified.
This constructor interpretsyear
, month
, and day
as a year, month, and day in the Gregorian calendar. To instantiate a DateTime value by using the year, month, and day in another calendar, call the DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar) constructor.
For applications in which portability of date and time data or a limited degree of time zone awareness is important, you can use the corresponding DateTimeOffset constructor.
Applies to
DateTime(Int32, Int32, Int32, Calendar)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified year, month, and day for the specified calendar.
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)
Parameters
- year
- Int32
The year (1 through the number of years in calendar
).
- month
- Int32
The month (1 through the number of months in calendar
).
- day
- Int32
The day (1 through the number of days in month
).
- calendar
- Calendar
The calendar that is used to interpret year
, month
, and day
.
Exceptions
calendar
is null
.
year
is not in the range supported by calendar
.
-or-
month
is less than 1 or greater than the number of months in calendar
.
-or-
day
is less than 1 or greater than the number of days in month
.
Examples
The following example calls the DateTime(Int32, Int32, Int32, Calendar) constructor twice to instantiate two DateTime values. The first call instantiates a DateTime value by using a PersianCalendar object. Because the Persian calendar cannot be designated as the default calendar for a culture, displaying a date in the Persian calendar requires individual calls to its PersianCalendar.GetMonth, PersianCalendar.GetDayOfMonth, and PersianCalendar.GetYear methods. The second call to the constructor instantiates a DateTime value by using a HijriCalendar object. The example changes the current culture to Arabic (Syria) and changes the current culture's default calendar to the Hijri calendar. Because Hijri is the current culture's default calendar, the Console.WriteLine method uses it to format the date. When the previous current culture (which is English (United States) in this case) is restored, the Console.WriteLine method uses the current culture's default Gregorian calendar to format the date.
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
Remarks
The time of day for the resulting DateTime is midnight (00:00:00). The Kind property is initialized to Unspecified.
The allowable values for year
, month
, and day
depend on calendar
. An exception is thrown if the specified date and time cannot be expressed using calendar
.
Important
Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. Such a change of era affects all applications that use these calendars. For more information and to determine whether your applications are affected, see Handling a new era in the Japanese calendar in .NET. For information on testing your applications on Windows systems to ensure their readiness for the era change, see Prepare your application for the Japanese era change. For features in .NET that support calendars with multiple eras and for best practices when working with calendars that support multiple eras, see Working with eras.
The System.Globalization namespace provides several calendars including GregorianCalendar and JulianCalendar.
See also
Applies to
DateTime(Int32, Int32, Int32)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified year, month, and day.
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)
Parameters
- year
- Int32
The year (1 through 9999).
- month
- Int32
The month (1 through 12).
- day
- Int32
The day (1 through the number of days in month
).
Exceptions
year
is less than 1 or greater than 9999.
-or-
month
is less than 1 or greater than 12.
-or-
day
is less than 1 or greater than the number of days in month
.
Examples
The following example uses the DateTime(Int32, Int32, Int32) constructor to instantiate a DateTime value. The example also illustrates that this overload creates a DateTime value whose time component equals midnight (or 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
Remarks
This constructor interprets year
, month
, and day
as a year, month, and day in the Gregorian calendar. To instantiate a DateTime value by using the year, month, and day in another calendar, call the DateTime(Int32, Int32, Int32, Calendar) constructor.
The time of day for the resulting DateTime is midnight (00:00:00). The Kind property is initialized to DateTimeKind.Unspecified.
Applies to
DateTime(DateOnly, TimeOnly, DateTimeKind)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified DateOnly and TimeOnly and respecting the specified 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)
Parameters
- date
- DateOnly
The date part.
- time
- TimeOnly
The time part.
- kind
- DateTimeKind
One of the enumeration values that indicates whether date
and time
specify a local time, Coordinated Universal Time (UTC), or neither.
Applies to
DateTime(Int64, DateTimeKind)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to a specified number of ticks and to Coordinated Universal Time (UTC) or local time.
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)
Parameters
- ticks
- Int64
A date and time expressed in the number of 100-nanosecond intervals that have elapsed since January 1, 0001 at 00:00:00.000 in the Gregorian calendar.
- kind
- DateTimeKind
One of the enumeration values that indicates whether ticks
specifies a local time, Coordinated Universal Time (UTC), or neither.
Exceptions
ticks
is less than DateTime.MinValue or greater than DateTime.MaxValue.
kind
is not one of the DateTimeKind values.
Remarks
For applications in which portability of date and time data or a limited degree of time zone awareness is important, you can use the corresponding DateTimeOffset constructor.
Applies to
DateTime(DateOnly, TimeOnly)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified DateOnly and TimeOnly. The new instance will have the Unspecified kind.
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)
Parameters
- date
- DateOnly
The date part.
- time
- TimeOnly
The time part.
Applies to
DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, and second for the specified calendar.
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)
Parameters
- year
- Int32
The year (1 through the number of years in calendar
).
- month
- Int32
The month (1 through the number of months in calendar
).
- day
- Int32
The day (1 through the number of days in month
).
- hour
- Int32
The hours (0 through 23).
- minute
- Int32
The minutes (0 through 59).
- second
- Int32
The seconds (0 through 59).
- calendar
- Calendar
The calendar that is used to interpret year
, month
, and day
.
Exceptions
calendar
is null
.
year
is not in the range supported by calendar
.
-or-
month
is less than 1 or greater than the number of months in calendar
.
-or-
day
is less than 1 or greater than the number of days in month
.
-or-
hour
is less than 0 or greater than 23
-or-
minute
is less than 0 or greater than 59.
-or-
second
is less than 0 or greater than 59.
Examples
The following example calls the DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar) constructor twice to instantiate two DateTime values. The first call instantiates a DateTime value by using a PersianCalendar object. Because the Persian calendar cannot be designated as the default calendar for a culture, displaying a date in the Persian calendar requires individual calls to its PersianCalendar.GetMonth, PersianCalendar.GetDayOfMonth, and PersianCalendar.GetYear methods. The second call to the constructor instantiates a DateTime value by using a HijriCalendar object. The example changes the current culture to Arabic (Syria) and changes the current culture's default calendar to the Hijri calendar. Because Hijri is the current culture's default calendar, the Console.WriteLine method uses it to format the date. When the previous current culture (which is English (United States) in this case) is restored, the Console.WriteLine method uses the current culture's default Gregorian calendar to format the date.
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
Remarks
The Kind property is initialized to Unspecified.
The allowable values for year
, month
, and day
depend on calendar
. An exception is thrown if the specified date and time cannot be expressed using calendar
.
Important
Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. Such a change of era affects all applications that use these calendars. For more information and to determine whether your applications are affected, see Handling a new era in the Japanese calendar in .NET. For information on testing your applications on Windows systems to ensure their readiness for the era change, see Prepare your application for the Japanese era change. For features in .NET that support calendars with multiple eras and for best practices when working with calendars that support multiple eras, see Working with eras.
The System.Globalization namespace provides several calendars including GregorianCalendar and JulianCalendar.