C#DateTime的11种构造函数
别的也不多说没直接贴代码
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
namespace Time20180929_DateTime
{
class Program
{
static void Main(string[] args)
{
/*
* 1.DateTime(Int64):将 DateTime 结构的新实例初始化为指定的刻度数。
* 2.DateTime(Int64, DateTimeKind):将 DateTime 结构的新实例初始化为指定的计时周期数以及协调世界时 (UTC) 或本地时间。
* 3.DateTime(Int32, Int32, Int32):将 DateTime 结构的新实例初始化为指定的年、⽉和⽇。
* 4.DateTime(Int32, Int32, Int32, Calendar):将 DateTime 结构的新实例初始化为指定⽇历的指定年、⽉和⽇。
* 5.DateTime(Int32, Int32, Int32, Int32, Int32, Int32):将 DateTime 结构的新实例初始化为指定的年、⽉、⽇、⼩时、分钟和秒。
* 6.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)    :将 DateTime 结构的新实例初始化为指定年、⽉、⽇、⼩时、分钟、秒和协调世界时 (UTC) 或本地时间。
* 7.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar):将 DateTime 结构的新实例初始化为指定⽇历的年、⽉、⽇、⼩时、分钟和秒。
* 8.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32):将 DateTime 结构的新实例初始化为指定的年、⽉、⽇、⼩时、分钟、秒和毫秒。
* 9.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind):将 DateTime 结构的新实例初始化为指定年、⽉、⽇、⼩时、分钟、秒、毫秒和协调世界时 (UTC) 或本地时间。
* 10.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar):将 DateTime 结构的新实例初始化为指定⽇历的指定年、⽉、⽇、⼩时、分钟、秒和毫秒。
* 11.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind):将 DateTime 结构的新实例初始化为指定⽇历的指定年、⽉、⽇、⼩时、分钟、秒、毫秒和协调世界时 (UTC) 或本
地时间。
*/
/*
* 1.public DateTime (long ticks):
* ⼀个⽇期和时间,以公历 0001 年 1 ⽉ 1 ⽇ 00:00:00.000 以来所经历的以 100 纳秒为间隔的间隔数来表⽰。
* ticks ⼩于 MinValue 或⼤于 MaxValue。
*/
//时间属性MinValue和MaxValue
long _minval = DateTime.MinValue.Ticks;
long _maxval = DateTime.MaxValue.Ticks;
DateTime _mintime = DateTime.MinValue;
DateTime _maxtime = DateTime.MaxValue;
string desc = "minval:{0}, _maxval:{1}, _mintime:{2}, _maxtime:{3}";
string format = "{0}) The {1} date and time is {2:MM/dd/yy hh:mm:ss tt}";
DateTime dt1 = new DateTime(DateTime.MinValue.Ticks);
DateTime dt2 = new DateTime(DateTime.MaxValue.Ticks);
//创建⼀个传统时间为上午2018/9/29 10:39:50基于名称指定的区域性"en-US"并基于布尔值(指定是否使⽤系统中⽤户选定的区域性设⽂化ticks
long ticks = new DateTime(2018, 9, 29, 10, 39, 50, new CultureInfo("en-US", false).Calendar).Ticks;
DateTime dt3 = new DateTime(ticks);
Console.WriteLine(desc, _minval, _maxval, _mintime, _maxtime);
Console.WriteLine(format, 1, "minimum", dt1);
Console.WriteLine(format, 2, "maxmum", dt2);
Console.WriteLine(format, 3, "custom ", dt3);
Console.WriteLine("\nThe custom date and time is created from {0:N0} ticks.", ticks);
Console.WriteLine("\nThe custom date and time is created from {0} ticks.", ticks);
/*
minval:0, _maxval:3155378975999999999, _mintime:0001/1/1 0:00:00, _maxtime:9999/12/31 23:59:59
1) The minimum date and time is 01/01/01 12:00:00 上午
2) The maxmum date and time is 12/31/99 11:59:59 下午
3) The custom  date and time is 09/29/18 10:39:50 上午
The custom date and time is created from 636,738,143,900,000,000 ticks.
The custom date and time is created from 636738143900000000 ticks.
*/
/*
* 2.public DateTime (long ticks, DateTimeKind kind);
* DateTime(Int64, DateTimeKind):将 DateTime 结构的新实例初始化为指定的计时周期数以及协调世界时 (UTC) 或本地时间。
* kind:
* Unspecified  0  表⽰的时间既未指定为本地时间,也未指定为协调通⽤时间 (UTC)。
* Utc          1  表⽰的时间为 UTC。
* Local        2  表⽰的时间为本地时间
*/
long ticks2 = new DateTime(2018, 9, 29, 10, 39, 50, new CultureInfo("en-US", false).Calendar).Ticks;
Console.WriteLine("2018-09-29 10:39:50");
Console.WriteLine("Unspecified:{0}", new DateTime(ticks2, DateTimeKind.Unspecified));
Console.WriteLine("Utc:{0}", new DateTime(ticks2, DateTimeKind.Utc));
Console.WriteLine("Local:{0}", new DateTime(ticks2, DateTimeKind.Local));
/*
2018-09-29 10:39:50
Unspecified:2018/9/29 10:39:50
Utc:2018/9/29 10:39:50
Local:2018/9/29 10:39:50
*/
/*
* 3.public DateTime (int year, int month, int day);
* DateTime(Int32, Int32, Int32)
* 将 DateTime 结构的新实例初始化为指定的年、⽉和⽇。
* year:1-9999,month:0-12,day:1-moth中的天数
*/
DateTime dt4 = new DateTime(2018, 9, 18);
Console.WriteLine("dt4的值为{0}", dt4.ToString());
/*
dt4的值为2018/9/18 0:00:00
*/
/*
* 4.public DateTime (int year, int month, int day, System.Globalization.Calendar calendar);
* DateTime(Int32, Int32, Int32, Calendar):将 DateTime 结构的新实例初始化为指定⽇历的指定年、⽉和⽇。
* year:1-9999,month:0-12,day:1-moth中的天数,Calendar⽤于解释 year、month 和 day 的⽇历。
*/
/*
下⾯的⽰例调⽤DateTime(Int32, Int32, Int32, Calendar)构造函数两次实例化两个DateTime值。第⼀次调⽤实例化DateTime通过使⽤值PersianCalendar对象。由于波斯⽇历不能指定为区域性的默认⽇历,显⽰⽇期与波斯历需要单独调⽤其            */
Console.WriteLine("Using the Persian Calendar:");
PersianCalendar persian = new PersianCalendar();
DateTime dt5 = new DateTime(2018,9,29, persian);
Console.WriteLine(dt5.ToString());
Console.WriteLine("{0}/{1}/{2}\n", persian.GetMonth(dt5),persian.GetDayOfMonth(dt5),persian.GetYear(dt5));
Console.WriteLine("Using the Hijri Calendar:");
// 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(2018,9,29, 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);
/*
Using the Persian Calendar:
2639/12/20 0:00:00
9/29/2018
Using the Hijri Calendar:
ar-SY culture using the Hijri calendar: 29/09/2018
zh-CN culture using the Gregorian calendar: 2580/3/16
*/
/*
* 5.public DateTime (int year, int month, int day, int hour, int minute, int second);
* DateTime(Int32, Int32, Int32, Int32, Int32, Int32)
* 将 DateTime 结构的新实例初始化为指定的年、⽉、⽇、⼩时、分钟和秒。
* year:1-9999,month:0-12,day:1-moth中的天数,hour:0-23,minuye:0-59,second:0-59
*/
DateTime date1 = new DateTime(2018, 9, 29, 11, 20, 26);
Console.WriteLine(date1.ToString());
/*2018/9/29 11:20:26*/
/
*
* 6.public DateTime (int year, int month, int day, int hour, int minute, int second, DateTimeKind kind);
* DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)
* 将 DateTime 结构的新实例初始化为指定年、⽉、⽇、⼩时、分钟、秒和协调世界时 (UTC) 或本地时间。
* year:1-9999,month:0-12,day:1-moth中的天数,hour:0-23,minuye:0-59,second:0-59
*kind:
*Unspecified  0  表⽰的时间既未指定为本地时间,也未指定为协调通⽤时间 (UTC)。
*Utc          1  表⽰的时间为 UTC。
*Local        2  表⽰的时间为本地时间
*/
DateTime date9 = new DateTime(2010, 8, 18, 16, 32, 0, DateTimeKind.Local);
Console.WriteLine("⽇期:{0}\nDateTimeKind:{1}", date9, date9.Kind);
/*
⽇期:2010/8/18 16:32:00
DateTimeKind:Local
*/
/*
*7.public DateTime (int year, int month, int day, int hour, int minute, int second, System.Globalization.Calendar calendar);
* DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar)
* 将 DateTime 结构的新实例初始化为指定⽇历的年、⽉、⽇、⼩时、分钟和秒。
* year:1-9999,month:0-12,day:1-moth中的天数,hour:0-23,minuye:0-59,second:0-59,
* calendar:⽤于解释 year、month 和 day 的⽇历。
*/
/*
*8.public DateTime (int year, int month, int day, int hour, int minute, int second, int millisecond);
* DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32)
* 将 DateTime 结构的新实例初始化为指定的年、⽉、⽇、⼩时、分钟、秒和毫秒。
* year:1-9999,month:0-12,day:1-moth中的天数,hour:0-23,minuye:0-59,second:0-59,millisecond:0-999
*/
DateTime date3 = new DateTime(2018, 9, 29, 13, 44, 30, 555);
Console.WriteLine(date3.ToString("MM/dd/yyyy HH:mm:ss.fff tt"));
/*09/29/2018 13:44:30.555 下午*/
/*
* 9.public DateTime (int year, int month, int day, int hour, int minute, int second, int millisecond, DateTimeKind kind);
* DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)
* 将 DateTime 结构的新实例初始化为指定年、⽉、⽇、⼩时、分钟、秒、毫秒和协调世界时 (UTC) 或本地时间。
* year:1-9999,month:0-12,day:1-moth中的天数,hour:0-23,minuye:0-59,second:0-59,millisecond:0-999
* kind:枚举值之⼀,该值指⽰ year、month、day、hour、minute、second 和 millisecond 指定了本地时间、
* 协调世界时 (UTC),还是两者皆未指定。
*/
DateTime date4 = new DateTime(2018, 9, 29, 13, 48, 30, 500, DateTimeKind.Local);
Console.WriteLine("{0:M/dd/yyyy h:mm:ss.fff tt} {1}", date4, date4.Kind);
/*
* 9/29/2018 1:48:30.500 下午 Local
*/
/*
* 10.public DateTime (int year, int month, int day, int hour, int minute, int second, int millisecond, System.Globalization.Calendar calendar);
* DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar)
* 将 DateTime 结构的新实例初始化为指定⽇历的指定年、⽉、⽇、⼩时、分钟、秒和毫秒。
* year:1-9999,month:0-12,day:1-moth中的天数,hour:0-23,minuye:0-59,second:0-59,millisecond:0-999
* calendar:⽤于解释 year、month 和 day 的⽇历
*/
/*
下⾯的⽰例调⽤DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar)构造函数两次实例化两个DateTime值。第⼀次调⽤实例化DateTime通过使⽤值PersianCalendar对象。由于波斯⽇历不能指定为区域性的默认⽇历,显⽰⽇期            */
Console.WriteLine("Using the Persian Calendar:");
PersianCalendar persian2 = new PersianCalendar();
DateTime date5 = new DateTime(1397, 3, 29, 16, 32, 18, 500, persian2);
Console.WriteLine(date5.ToString("M/dd/yyyy h:mm:ss.fff tt"));
Console.WriteLine("{0}/{1}/{2} {3}{7}{4:D2}{7}{5:D2}.{6:G3}\n",
persian2.GetMonth(date5),
persian2.GetDayOfMonth(date5),
persian2.GetYear(date5),
persian2.GetHour(date5),
persian2.GetMinute(date5),
persian2.GetSecond(date5),
persian2.GetMilliseconds(date5),
DateTimeFormatInfo.CurrentInfo.TimeSeparator);
Console.WriteLine("Using the Hijri Calendar:");
// Get current culture so it can later be restored.
CultureInfo dftCulture2 = Thread.CurrentThread.CurrentCulture;
// Define strings for use in composite formatting.
string dFormat2;
string fmtString;
/
/ Define Hijri calendar.
HijriCalendar hijri2 = new HijriCalendar();
// Make ar-SY the current culture and Hijri the current calendar.
CultureInfo current2 = CultureInfo.CurrentCulture;
current2.DateTimeFormat.Calendar = hijri2;
dFormat2 = current.DateTimeFormat.ShortDatePattern;
// Ensure year is displayed as four digits.
dFormat2 = Regex.Replace(dFormat2, "/yy$", "/yyyy") + " H:mm:ss.fff";
fmtString = "{0} culture using the {1} calendar: {2:" + dFormat2 + "}";
DateTime date6 = new DateTime(1431, 9, 9, 16, 32, 18, 500, hijri2);
Console.WriteLine(fmtString, current2, GetCalendarName(hijri2), date6);
/
/ Restore previous culture.
Thread.CurrentThread.CurrentCulture = dftCulture;
dFormat2 = DateTimeFormatInfo.CurrentInfo.ShortDatePattern + " H:mm:ss.fff";
fmtString = "{0} culture using the {1} calendar: {2:" + dFormat2 + "}";
Console.WriteLine(fmtString,
CultureInfo.CurrentCulture,writeline函数
GetCalendarName(CultureInfo.CurrentCulture.Calendar),
date6);
/*
Using the Persian Calendar:
6/19/2018 4:32:18.500 下午
3/29/1397 16:32:18.500
Using the Hijri Calendar:
ar-SY culture using the Hijri calendar: 09/09/1431 16:32:18.500
zh-CN culture using the Gregorian calendar: 2010/8/18 16:32:18.500
*/
/*
* 11.public DateTime (int year, int month, int day, int hour, int minute, int second, int millisecond, System.Globalization.Calendar calendar, DateTimeKind kind);
* DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind)
* 将 DateTime 结构的新实例初始化为指定⽇历的指定年、⽉、⽇、⼩时、分钟、秒、毫秒和协调世界时 (UTC) 或本地时间。
* year:1-9999,month:0-12,day:1-moth中的天数,hour:0-23,minuye:0-59,second:0-59,millisecond:0-9
99
* calendar:⽤于解释 year、month 和 day 的⽇历
* kind:枚举值之⼀,该值指⽰ year、month、day、hour、minute、second 和 millisecond 指定了本地时间、
* 协调世界时 (UTC),还是两者皆未指定。
*/
/*
下⾯的⽰例调⽤DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind)构造函数两次实例化两个DateTime值。第⼀次调⽤实例化DateTime通过使⽤值PersianCalendar对象。由于波斯⽇历不能指定为区域性的默认            */
Console.WriteLine("Using the Persian Calendar:");
PersianCalendar persian3 = new PersianCalendar();
DateTime date7 = new DateTime(1397, 3, 29, 16, 32, 18, 500,
persian3, DateTimeKind.Local);
Console.WriteLine("{0:M/dd/yyyy h:mm:ss.fff tt} {1}", date7, date7.Kind);
Console.WriteLine("{0}/{1}/{2} {3}{8}{4:D2}{8}{5:D2}.{6:G3} {7}\n",
persian3.GetMonth(date7),
persian3.GetDayOfMonth(date7),
persian3.GetYear(date7),
persian3.GetHour(date7),
persian3.GetMinute(date7),
persian3.GetSecond(date7),
persian3.GetMilliseconds(date7),
date7.Kind,
DateTimeFormatInfo.CurrentInfo.TimeSeparator);
Console.WriteLine("Using the Hijri Calendar:");
// Get current culture so it can later be restored.
CultureInfo dftCulture3 = Thread.CurrentThread.CurrentCulture;
// Define strings for use in composite formatting.
string dFormat3;
string fmtString3;
// Define Hijri calendar.
HijriCalendar hijri3 = new HijriCalendar();
// Make ar-SY the current culture and Hijri the current calendar.
Thread.CurrentThread.CurrentCulture = new CultureInfo("ar-SY");
CultureInfo current3 = CultureInfo.CurrentCulture;
current3.DateTimeFormat.Calendar = hijri3;
dFormat3 = current3.DateTimeFormat.ShortDatePattern;
// Ensure year is displayed as four digits.
dFormat3 = Regex.Replace(dFormat3, "/yy$", "/yyyy") + " H:mm:ss.fff";
fmtString3 = "{0} culture using the {1} calendar: {2:" + dFormat3 + "} {3}";
DateTime date8 = new DateTime(1431, 9, 9, 16, 32, 18, 500,
hijri3, DateTimeKind.Local);
Console.WriteLine(fmtString3, current3, GetCalendarName(hijri3),
date8, date8.Kind);
/
/ Restore previous culture.
Thread.CurrentThread.CurrentCulture = dftCulture3;
dFormat3 = DateTimeFormatInfo.CurrentInfo.ShortDatePattern + " H:mm:ss.fff";
fmtString3= "{0} culture using the {1} calendar: {2:" + dFormat3 + "} {3}";
Console.WriteLine(fmtString3,
CultureInfo.CurrentCulture,
GetCalendarName(CultureInfo.CurrentCulture.Calendar),
date8, date8.Kind);
/*
Using the Persian Calendar:
6/19/2018 4:32:18.500 下午 Local
3/29/1397 16:32:18.500 Local
Using the Hijri Calendar:
ar-SY culture using the Hijri calendar: 09/09/1431 16:32:18.500 Local
zh-CN culture using the Gregorian calendar: 2010/8/18 16:32:18.500 Local
*/
Console.ReadKey();
}
private static string GetCalendarName(Calendar cal)
{
return Regex.Match(cal.ToString(), "\\.(\\w+)Calendar").Groups[1].Value;
}
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。