您编写的大多数软件都需要实现某种形式的日期函数来返回当前日期和时间.日期是日常生活的重要组成部分,无需思考即可轻松与他们合作. VB.Net还提供了强大的日期算术工具,可以轻松操作日期.
日期数据类型包含日期值,时间值或日期和时间值. Date的默认值是0001年1月1日的0:00:00(午夜).等效的.NET数据类型是 System.DateTime .
DateTime 结构代表一个时刻,通常表示为日期和时间
'Declaration <SerializableAttribute> _ Public Structure DateTime _ Implements IComparable, IFormattable, IConvertible, ISerializable, IComparable(Of DateTime), IEquatable(Of DateTime)
您还可以从DateAndTime类获取当前日期和时间.
DateAndTime 模块包含日期和时间中使用的过程和属性操作.
'Declaration <StandardModuleAttribute> _ Public NotInheritable Class DateAndTime
注意: DateTime结构和DateAndTime模块都包含 Now 和今天,所以初学者经常发现它令人困惑. DateAndTime类属于Microsoft.VisualBasic命名空间,DateTime结构属于System命名空间.因此,使用更高版本将帮助您将代码移植到另一种.Net语言,如C#.但是,DateAndTime类/模块包含Visual Basic中可用的所有旧日期函数. |
日期时间结构的属性和方法
下表列出了 DateTime 结构和减号的一些常用属性 ;
Sr .No | 属性 | 说明 |
---|---|---|
1 | Date | 获取此实例的日期组件. |
2 | Day | 获取所代表的月份的日期通过这个例子. |
3 | DayOfWeek | 获取此实例所代表的星期几. |
4 | DayOfYear | 获取此实例所代表的年份中的日期. |
5 | Hour | 获取小时组件此实例表示的日期. |
6 | Kind | 获取一个值,该值指示此实例表示的时间是基于本地时间,协调世界时(UTC)还是两者都不是. |
7 | Millisecond | 获取此实例所代表日期的毫秒分量. |
8 | Minute | 获取分钟此实例所代表的日期的组成部分. |
9 | Month | 获取此实例所代表的日期的月份组件. |
10 | Now | 获取 DateTime 在此计算机上设置为当前日期和时间的对象,表示为本地时间. |
11 | Second | 获取此实例表示的日期的秒组件. |
12 | Ticks | 获取表示此实例的日期和时间的刻度数. |
13 | TimeOfDay | 获取此实例的时间. |
14 | Today | 获取当前日期. |
15 | UtcNow | 获取 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为协调世界时(UTC)./td> |
16 | Year | 获取此实例所代表日期的年份组件. |
下表列出了 DateTime 结构的一些常用方法 :
Sr.No | 方法名称&描述 |
---|---|
1 |
Public Function Add (value As TimeSpan) As DateTime 返回一个新的DateTime,它将指定TimeSpan的值添加到此实例的值. |
2 |
Public Function AddDays ( value As Double) As DateTime 返回一个新的DateTime,它将指定的天数添加到此值实例. |
3 |
Public Function AddHours (value As Double) As DateTime 返回一个新的DateTime,它将指定的小时数添加到此实例的值. |
4 |
Public Function AddMinutes (value As Double) As DateTime 返回添加指定的新DateTime此实例值的分钟数ce. |
5 |
Public Function AddMonths (months As Integer) As DateTime 返回一个新的DateTime,它将指定的月数添加到此实例的值. |
6 |
Public Function AddSeconds (value As Double) As DateTime 返回添加指定的新DateTime该实例值的秒数. |
7 |
Public Function AddYears (value As Integer ) As DateTime 返回一个新的DateTime将指定的年数添加到此实例的值. |
8 |
Public Shared Function Compare (t1 As DateTime,t2 As DateTime) As Integer 比较两个DateTime实例并返回一个整数指定第一个实例是否早于,等于或晚于第二个实例. |
9 |
Public Function CompareTo (value As DateTime) As Integer 将此实例的值与指定的DateTime值进行比较,并返回一个整数,该整数指示此实例是否早于,等于或晚于指定的DateTime值. |
10 |
Public Function Equals(value As DateTime)As Boolean 返回一个值,该值指示此实例的值是否等于指定的DateTime实例的值./p> |
11 |
Public Shared Function Equals (t1 As DateTime, t2 As DateTime) As Boolean 返回一个值,指示两个DateTime实例是否具有相同的日期和时间值. |
12 |
Public Overrides Function ToString As String 将当前DateTime对象的值转换为其等效的字符串表示形式. |
以上方法列表并非详尽无遗,请访问 Microsoft文档,了解DateTime结构的完整方法和属性列表.
创建DateTime对象
您可以使用以下方式之一创建DateTime对象 :
-
通过从任何重载的DateTime构造函数调用DateTime构造函数.
-
通过为DateTime对象分配由a返回的日期和时间值属性或方法.
-
通过解析日期和时间值的字符串表示.
-
通过电话使用DateTime结构的隐式默认构造函数.
以下示例演示了这个 :
Module Module1 Sub Main() 'DateTime constructor: parameters year, month, day, hour, min, sec Dim date1 As New Date(2012, 12, 16, 12, 0, 0) 'initializes a new DateTime value Dim date2 As Date = #12/16/2012 12:00:52 AM# 'using properties Dim date3 As Date = Date.Now Dim date4 As Date = Date.UtcNow Dim date5 As Date = Date.Today Console.WriteLine(date1) Console.WriteLine(date2) Console.WriteLine(date3) Console.WriteLine(date4) Console.WriteLine(date5) Console.ReadKey() End Sub End Module
当编译并执行上述代码时,它会产生以下结果 :
12/16/2012 12:00:00 PM 12/16/2012 12:00:52 PM 12/12/2012 10:22:50 PM 12/12/2012 12:00:00 PM
获取当前日期和时间
以下程序演示了如何在VB.Net&minus中获取当前日期和时间;
当前时间:
Module dateNtime Sub Main() Console.Write("Current Time: ") Console.WriteLine(Now.ToLongTimeString) Console.ReadKey() End Sub End Module
编译并执行上面的代码,它产生以下结果 :
Current Time: 11 :05 :32 AM
当前日期:
Module dateNtime Sub Main() Console.WriteLine("Current Date: ") Dim dt As Date = Today Console.WriteLine("Today is: {0}", dt) Console.ReadKey() End Sub End Module
当编译并执行上述代码时,它会产生以下结果 :
Today is: 12/11/2012 12:00:00 AM
格式化日期
日期文字应该包含在井号(##)中,并以M/d/yyyy格式指定,例如#12/16/2012#.否则,您的代码可能会根据运行应用程序的区域设置而发生变化.
例如,您为2012年2月6日的日期指定了日期文字#2/6/2012#对于使用mm/dd/yyyy格式的语言环境来说没问题.但是,在使用dd/mm/yyyy格式的语言环境中,您的文字将编译为2012年6月2日.如果语言环境使用另一种格式,例如yyyy/mm/dd,则文字将无效并导致编译器错误.
要将日期文字转换为您的语言环境格式或自定义格式,请使用String类的格式函数,指定预定义或用户定义日期格式.
以下示例演示了这一点.
Module dateNtime Sub Main() Console.WriteLine("India Wins Freedom: ") Dim independenceDay As New Date(1947, 8, 15, 0, 0, 0) ' Use format specifiers to control the date display. Console.WriteLine(" Format 'd:' " & independenceDay.ToString("d")) Console.WriteLine(" Format 'D:' " & independenceDay.ToString("D")) Console.WriteLine(" Format 't:' " & independenceDay.ToString("t")) Console.WriteLine(" Format 'T:' " & independenceDay.ToString("T")) Console.WriteLine(" Format 'f:' " & independenceDay.ToString("f")) Console.WriteLine(" Format 'F:' " & independenceDay.ToString("F")) Console.WriteLine(" Format 'g:' " & independenceDay.ToString("g")) Console.WriteLine(" Format 'G:' " & independenceDay.ToString("G")) Console.WriteLine(" Format 'M:' " & independenceDay.ToString("M")) Console.WriteLine(" Format 'R:' " & independenceDay.ToString("R")) Console.WriteLine(" Format 'y:' " & independenceDay.ToString("y")) Console.ReadKey() End Sub End Module
当上述c ode被编译并执行,它产生以下结果 :
India Wins Freedom: Format 'd:' 8/15/1947 Format 'D:' Friday, August 15, 1947 Format 't:' 12:00 AM Format 'T:' 12:00:00 AM Format 'f:' Friday, August 15, 1947 12:00 AM Format 'F:' Friday, August 15, 1947 12:00:00 AM Format 'g:' 8/15/1947 12:00 AM Format 'G:' 8/15/1947 12:00:00 AM Format 'M:' 8/15/1947 August 15 Format 'R:' Fri, 15 August 1947 00:00:00 GMT Format 'y:' August, 1947
预定义日期/时间格式
下表列出了预定义的日期和时间格式名称.这些可以通过名称用作格式函数的样式参数 :
格式 | 描述 |
---|---|
General Date, or G | 显示日期和/或时间.例如,2012年1月12日07:07:30. |
Long Date,Medium Date, or D | 根据您当前文化的长日期格式显示日期.例如,2012年12月16日星期日. |
Short Date, or d | 使用您当前文化的短日期格式显示日期.例如,12/12/2012. |
Long Time,Medium Time, orT | 使用您当前文化的长时间格式显示时间;通常包括小时,分钟,秒.例如,01:07:30 AM. |
Short Time or t | 使用您当前文化的短时间格式显示时间.例如,上午11:07. |
f | 根据您当前的文化格式显示长日期和短时间.例如,2012年12月16日星期日上午12:15. |
F | 根据您当前的文化格式显示长日期和长时间.例如,2012年12月16日星期日上午12:15:31. |
g | 根据您当前的文化格式显示短日期和短时间.例如,12/16/2012 12:15 AM. |
M,m | 显示日期的月份和日期.例如,12月16日. |
R,r | 根据RFC1123Pattern属性格式化日期. |
s | 格式化日期和时间作为可排序的索引.例如,2012-12-16T12:07:31. |
u | 将日期和时间格式化为GMT可排序索引.例如,2012-12-16 12:15:31Z. |
U | 格式化日期和时间,长日期和长时间格式为GMT.例如,2012年12月16日星期日下午6:07:31. |
Y,y | 将日期格式化为年份和月份.例如,2012年12月. |
对于其他格式,如用户定义的格式,请参阅 Microsoft文档.
属性和方法of DateAndTime Class
下表列出了 DateAndTime Class :
$的一些常用属性 b $ b
Sr.No | Property&说明 |
---|---|
1 |
Date 根据您的系统返回或设置表示当前日期的字符串值. |
2 |
Now 根据您的系统返回包含当前日期和时间的Date值. |
3 |
TimeOfDay 退货或根据您的系统设置包含当前时间的日期值. |
4 |
Timer 返回表示经过的秒数的Double值从午夜开始. |
5 |
TimeString 根据您的系统返回或设置表示当前时间的String值. |
6 |
Today 获取当前日期. |
下表列出了一些常用的 DateAndTime 类的方法 :
Sr.No | 方法名称&描述 |
---|---|
1 |
Public Shared Function DateAdd (Interval As DateInterval, Number As Double, DateValue As DateTime) As DateTime 返回包含日期和时间值的Date值已添加指定的时间间隔. |
2 |
Public Shared Function DateAdd (Interval As String,Number As Double,DateValue As Object ) As DateTime 返回一个Date值,其中包含已添加指定时间间隔的日期和时间值. |
3 |
Public Shared Function DateDiff (Interval As DateInterval, Date1 As DateTime, Date2 As DateTime, DayOfWeek As FirstDayOfWeek, WeekOfYear As FirstWeekOfYear ) As Long 返回一个Long值,指定两个Date值之间的时间间隔数. |
4 |
Public Shared Function DatePart (Interval As DateInterval, DateValue As DateTime, FirstDayOfWeekValue As FirstDayOfWeek, FirstWeekOfYearValue As FirstWeekOfYear ) As Integer 返回包含给定Date值的指定组件的Integer值. |
5 |
Public Shared Function Day (DateValue As DateTime) As Integer 返回1到31之间的整数值,表示该月的某一天. |
6 |
Public Shared Function Hour (TimeValue As DateTime) As Integer 返回0到23之间的整数值,表示当天的小时. |
7 |
Public Shared Function Minute (TimeValue As DateTime) As Integer 返回整数值fr om 0到59表示小时的分钟. |
8 |
Public Shared Function Month (DateValue As DateTime) As Integer 返回1到12之间的整数值,表示一年中的月份. |
9 |
Public Shared Function MonthName (Month As Integer, Abbreviate As Boolean) As String 返回包含指定月份名称的String值. |
10 |
Public Shared Function Second (TimeValue As DateTime) As Integer 返回0到59之间的整数值,表示分钟的第二个. |
11 |
Public Overridable Function ToString As String 返回表示当前对象的字符串. |
12 |
Public Shared Function Weekday (DateValue As DateTime, DayOfWeek As FirstDayOfWeek) As Integer 返回包含表示星期几的数字的整数值. |
13 |
Public Shared Function WeekdayName (Weekday As Integer, Abbreviate As Boolean, FirstDayOfWeekValue As FirstDayOfWeek) As String 返回包含名称的String值指定的工作日. |
14 |
Public Shared Function Year (DateValue As DateTime) As Integer 返回1到9999之间的整数值年. |
以上列表并非详尽无遗.有关DateAndTime类的属性和方法的完整列表,请参阅 Microsoft文档.
以下程序演示了其中的一些和方法 :
Module Module1 Sub Main() Dim birthday As Date Dim bday As Integer Dim month As Integer Dim monthname As String ' Assign a date using standard short format. birthday = #7/27/1998# bday = Microsoft.VisualBasic.DateAndTime.Day(birthday) month = Microsoft.VisualBasic.DateAndTime.Month(birthday) monthname = Microsoft.VisualBasic.DateAndTime.MonthName(month) Console.WriteLine(birthday) Console.WriteLine(bday) Console.WriteLine(month) Console.WriteLine(monthname) Console.ReadKey() End Sub End Module
编译上述代码时并执行,它产生以下结果 :
7/27/1998 12:00:00 AM 27 7 July