
- VB.Net 基礎教程
- VB.Net - 首頁
- VB.Net - 概述
- VB.Net - 環境設定
- VB.Net - 程式結構
- VB.Net - 基本語法
- VB.Net - 資料型別
- VB.Net - 變數
- VB.Net - 常量
- VB.Net - 修飾符
- VB.Net - 語句
- VB.Net - 指令
- VB.Net - 運算子
- VB.Net - 決策
- VB.Net - 迴圈
- VB.Net - 字串
- VB.Net - 日期和時間
- VB.Net - 陣列
- VB.Net - 集合
- VB.Net - 函式
- VB.Net - 子程式
- VB.Net - 類和物件
- VB.Net - 異常處理
- VB.Net - 檔案處理
- VB.Net - 基本控制元件
- VB.Net - 對話方塊
- VB.Net - 高階窗體
- VB.Net - 事件處理
- VB.Net 高階教程
- VB.Net - 正則表示式
- VB.Net - 資料庫訪問
- VB.Net - Excel 表格
- VB.Net - 傳送郵件
- VB.Net - XML 處理
- VB.Net - Web程式設計
- VB.Net 有用資源
- VB.Net - 快速指南
- VB.Net - 有用資源
- VB.Net - 討論
VB.Net - 日期和時間
您編寫的多數軟體都需要實現某種形式的日期函式,以返回當前日期和時間。日期在日常生活中如此常見,以至於在不加思考的情況下就能輕鬆地使用它們。VB.Net 還提供了強大的日期運算工具,使日期操作變得容易。
Date 資料型別包含日期值、時間值或日期和時間值。Date 的預設值為 0:00:00(午夜),即公元 1 年 1 月 1 日。等效的 .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 和 Today 這樣的屬性,因此初學者常常感到困惑。DateAndTime 類屬於 Microsoft.VisualBasic 名稱空間,而 DateTime 結構屬於 System 名稱空間。 |
DateTime 結構的屬性和方法
下表列出了 DateTime 結構中一些常用的 屬性:
序號 | 屬性 | 描述 |
---|---|---|
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)。 |
16 | Year | 獲取此例項代表的日期的年份部分。 |
下表列出了 DateTime 結構中一些常用的 方法:
序號 | 方法名稱和描述 |
---|---|
1 |
Public Function Add (value As TimeSpan) As DateTime 返回一個新的 DateTime,該 DateTime 將指定 TimeSpan 的值新增到此例項的值。 |
2 |
Public Function AddDays ( value As Double) As DateTime 返回一個新的 DateTime,該 DateTime 將指定的天數新增到此例項的值。 |
3 |
Public Function AddHours (value As Double) As DateTime 返回一個新的 DateTime,該 DateTime 將指定的小時數新增到此例項的值。 |
4 |
Public Function AddMinutes (value As Double) As DateTime 返回一個新的 DateTime,該 DateTime 將指定的分鐘數新增到此例項的值。 |
5 |
Public Function AddMonths (months As Integer) As DateTime 返回一個新的 DateTime,該 DateTime 將指定的月份數新增到此例項的值。 |
6 |
Public Function AddSeconds (value As Double) As DateTime 返回一個新的 DateTime,該 DateTime 將指定的秒數新增到此例項的值。 |
7 |
Public Function AddYears (value As Integer ) As DateTime 返回一個新的 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 例項的值。 |
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 物件分配屬性或方法返回的日期和時間值。
分析日期和時間值的字串表示形式。
呼叫 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 中獲取當前日期和時間:
當前時間:
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 類的 Format 函式,指定預定義或使用者定義的日期格式。
以下示例演示了這一點。
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
編譯並執行上述程式碼後,將產生以下結果:
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
預定義的日期/時間格式
下表標識了預定義的日期和時間格式名稱。這些名稱可用作 Format 函式的 style 引數:
格式 | 描述 |
---|---|
常規日期或 G | 顯示日期和/或時間。例如,1/12/2012 07:07:30 AM。 |
長日期、中日期或 D | 根據您當前文化的長日期格式顯示日期。例如,星期日,2012 年 12 月 16 日。 |
短日期或 d | 使用您當前文化的短日期格式顯示日期。例如,12/12/2012。 |
長時間、中時間或 T | 使用您當前文化的長時間格式顯示時間;通常包括小時、分鐘、秒。例如,上午 01:07:30。 |
短時間或 t | 使用您當前文化的短時間格式顯示時間。例如,上午 11:07。 |
f | 根據您當前文化的格式顯示長日期和短時間。例如,星期日,2012 年 12 月 16 日 上午 12:15。 |
F | 根據您當前文化的格式顯示長日期和長時間。例如,星期日,2012 年 12 月 16 日 上午 12:15:31。 |
g | 根據您當前文化的格式顯示短日期和短時間。例如,12/16/2012 上午 12:15。 |
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 文件。
DateAndTime 類的屬性和方法
下表列出了 DateAndTime 類中一些常用的 屬性:
序號 | 屬性和描述 |
---|---|
1 | Date 返回或設定一個字串值,表示根據您的系統當前日期。 |
2 | Now 返回一個 Date 值,包含根據您的系統當前日期和時間。 |
3 | TimeOfDay 返回或設定一個 Date 值,包含根據您的系統當前時間。 |
4 | 計時器 返回一個 Double 值,表示自午夜以來經過的秒數。 |
5 | 時間字串 返回或設定一個字串值,表示根據您的系統當前時間。 |
6 | Today 獲取當前日期。 |
下表列出了一些常用的DateAndTime類的方法:
序號 | 方法名稱和描述 |
---|---|
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 返回一個 Integer 值,包含給定 Date 值的指定元件。 |
5 |
Public Shared Function Day (DateValue As DateTime) As Integer 返回一個 Integer 值(1 到 31),表示月份中的某一天。 |
6 | Public Shared Function Hour (TimeValue As DateTime) As Integer 返回一個 Integer 值(0 到 23),表示一天中的小時。 |
7 |
Public Shared Function Minute (TimeValue As DateTime) As Integer 返回一個 Integer 值(0 到 59),表示小時中的分鐘。 |
8 |
Public Shared Function Month (DateValue As DateTime) As Integer 返回一個 Integer 值(1 到 12),表示一年中的月份。 |
9 |
Public Shared Function MonthName (Month As Integer, Abbreviate As Boolean) As String 返回一個包含指定月份名稱的字串值。 |
10 |
Public Shared Function Second (TimeValue As DateTime) As Integer 返回一個 Integer 值(0 到 59),表示分鐘中的秒數。 |
11 |
Public Overridable Function ToString As String 返回表示當前物件的字串。 |
12 |
Public Shared Function Weekday (DateValue As DateTime, DayOfWeek As FirstDayOfWeek) As Integer 返回一個 Integer 值,包含表示一週中某一天的數字。 |
13 |
Public Shared Function WeekdayName (Weekday As Integer, Abbreviate As Boolean, FirstDayOfWeekValue As FirstDayOfWeek) As String 返回一個包含指定工作日名稱的字串值。 |
14 |
Public Shared Function Year (DateValue As DateTime) As Integer 返回一個 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