75
Chương 2: Thao tác dữ liệu
}
}
7.
7.
T o ngày và gi t chu i
ạ
ờ ừ
ỗ
T o ngày và gi t chu i
ạ
ờ ừ
ỗ
Bạn cần tạo một thể hiện
System.DateTime
mô tả giờ, ngày được chỉ định trong
một chuỗi.
Sử dụng phương thức
Parse
hoặc
ParseExact
của lớp
DateTime
.
Có nhiều cách mô tả ngày, giờ; ví dụ 1st June 2004, 1/6/2004, 6/1/2004, 1-Jun-2004 cùng chỉ
một ngày; 16:43 và 4:43 PM cùng chỉ một giờ. Lớp
DateTime
cung cấp phương thức tĩnh
Parse
rất linh hoạt, cho phép tạo thể hiện
DateTime
từ nhiều cách mô tả khác nhau trong
chuỗi.
Phương thức
Parse
rất mạnh trong việc tạo đối tượng
DateTime
từ một chuỗi cho trước. Nó có
thể xử lý một chuỗi chỉ chứa một phần thông tin hay chứa thông tin sai, và thay thế các giá trị
thiếu bằng các giá trị mặc định. Ngày mặc định là ngày hiện tại, giờ mặc định là 12:00:00
AM. Nếu sau mọi cố gắng,
Parse
không thể tạo đối tượng
DateTime
, nó sẽ ném ngoại lệ
System.FormatException
. Ví dụ sau minh họa tính linh hoạt của
Parse
:
// 01/09/2004 12:00:00 AM
DateTime dt1 = DateTime.Parse("Sep 2004");
// 05/09/2004 02:15:33 PM
DateTime dt2 = DateTime.Parse("Sun 5 September 2004 14:15:33");
// 05/09/2004 12:00:00 AM
DateTime dt3 = DateTime.Parse("5,9,04");
// 05/09/2004 02:15:33 PM
DateTime dt4 = DateTime.Parse("5/9/2004 14:15:33");
// 07/10/2004 02:15:00 PM (giả sử ngày hiện tại là 07/10/2004)
DateTime dt5 = DateTime.Parse("2:15 PM");
Phương thức
Parse
linh hoạt và có thể tự sửa lỗi. Tuy nhiên, mức độ linh hoạt này không cần
thiết trong trường hợp bạn muốn bảo đảm các chuỗi phải theo một định dạng nhất định. Khi
đó, sử dụng phương thức
ParseExact
thay cho
Parse
. Dạng đơn giản nhất của
ParseExact
nhận ba đối số: chuỗi chứa ngày giờ, chuỗi định dạng xác định cấu trúc mà chuỗi chứa ngày
giờ phải tuân theo, và một tham chiếu
IFormatProvider
cung cấp thông tin đặc thù về bản địa.
Nếu
IFormatProvider
là
null
, thông tin về bản địa của tiểu trình (thread) hiện hành sẽ được
sử dụng.
Nếu ngày giờ trong chuỗi đang xét không đúng với định dạng quy định,
ParseExact
sẽ ném
ngoại lệ
System.FormatException
. Chuỗi định dạng được sử dụng tương tự như khi bạn chỉ