Hướng dẫn Sử dụng DateTimeFormatter trong C#

4
(200 votes)

DateTimeFormatter là một công cụ mạnh mẽ trong C# cho phép bạn định dạng và phân tích ngày giờ theo cách bạn muốn. Nó cung cấp một cách linh hoạt và dễ sử dụng để kiểm soát cách ngày giờ được hiển thị và xử lý trong ứng dụng của bạn. Bài viết này sẽ hướng dẫn bạn cách sử dụng DateTimeFormatter trong C# để định dạng và phân tích ngày giờ một cách hiệu quả.

Cách tạo DateTimeFormatter

Để sử dụng DateTimeFormatter, bạn cần tạo một đối tượng DateTimeFormatter. Có hai cách chính để tạo DateTimeFormatter:

* Sử dụng các mẫu định dạng sẵn có: C# cung cấp một số mẫu định dạng sẵn có cho các trường hợp phổ biến. Ví dụ, bạn có thể sử dụng "yyyy-MM-dd" để định dạng ngày theo kiểu "2023-12-25" hoặc "HH:mm:ss" để định dạng giờ theo kiểu "14:30:00".

* Tạo mẫu định dạng tùy chỉnh: Nếu bạn cần định dạng ngày giờ theo cách cụ thể, bạn có thể tạo mẫu định dạng tùy chỉnh bằng cách sử dụng các ký hiệu đặc biệt. Ví dụ, bạn có thể sử dụng "dd/MM/yyyy" để định dạng ngày theo kiểu "25/12/2023" hoặc "MMMM dd, yyyy" để định dạng ngày theo kiểu "December 25, 2023".

Định dạng ngày giờ

Sau khi tạo DateTimeFormatter, bạn có thể sử dụng nó để định dạng ngày giờ bằng phương thức `format` của đối tượng DateTimeFormatter. Phương thức này nhận đối tượng DateTime làm đầu vào và trả về chuỗi văn bản được định dạng.

```csharp

// Tạo DateTimeFormatter với mẫu định dạng "yyyy-MM-dd"

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

// Định dạng ngày giờ

DateTime dateTime = DateTime.now();

String formattedDateTime = formatter.format(dateTime);

// In kết quả

Console.WriteLine(formattedDateTime); // In ra: 2023-12-25

```

Phân tích ngày giờ

Ngoài việc định dạng ngày giờ, DateTimeFormatter cũng có thể được sử dụng để phân tích chuỗi văn bản thành đối tượng DateTime. Phương thức `parse` của DateTimeFormatter nhận chuỗi văn bản làm đầu vào và trả về đối tượng DateTime.

```csharp

// Tạo DateTimeFormatter với mẫu định dạng "dd/MM/yyyy"

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");

// Phân tích chuỗi văn bản

String dateTimeString = "25/12/2023";

DateTime dateTime = formatter.parse(dateTimeString);

// In kết quả

Console.WriteLine(dateTime); // In ra: 2023-12-25T00:00:00

```

Các ký hiệu đặc biệt

DateTimeFormatter sử dụng các ký hiệu đặc biệt để xác định cách định dạng ngày giờ. Dưới đây là một số ký hiệu phổ biến:

* y: Năm

* M: Tháng

* d: Ngày

* H: Giờ (24 giờ)

* m: Phút

* s: Giây

Ví dụ

Dưới đây là một số ví dụ về cách sử dụng DateTimeFormatter để định dạng và phân tích ngày giờ:

* Định dạng ngày theo kiểu "25/12/2023":

```csharp

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");

String formattedDateTime = formatter.format(DateTime.now());

```

* Định dạng ngày giờ theo kiểu "December 25, 2023, 14:30:00":

```csharp

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM dd, yyyy, HH:mm:ss");

String formattedDateTime = formatter.format(DateTime.now());

```

* Phân tích chuỗi văn bản "2023-12-25" thành đối tượng DateTime:

```csharp

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

DateTime dateTime = formatter.parse("2023-12-25");

```

Kết luận

DateTimeFormatter là một công cụ mạnh mẽ trong C# cho phép bạn định dạng và phân tích ngày giờ theo cách bạn muốn. Nó cung cấp một cách linh hoạt và dễ sử dụng để kiểm soát cách ngày giờ được hiển thị và xử lý trong ứng dụng của bạn. Bằng cách sử dụng các mẫu định dạng sẵn có hoặc tạo mẫu định dạng tùy chỉnh, bạn có thể định dạng và phân tích ngày giờ theo bất kỳ cách nào bạn cần.