Hướng dẫn sử dụng Date Time trong C#
Công ty Vĩnh Cửu tuyển dụng lập trình viên Java

1- Các class liên quan Date, Time trong C#

Trong .NET Framework, System.DateTime là một class đại diện cho ngày tháng và thời gian, giá trị của nó nằm trong khoảng 12:00:00 đêm ngày 01-01-0001 tới 11:59:59 tối ngày 31-12-9999.
Có nhiều cấu tử để bạn khởi tạo một đối tượng DateTime.
DateTime Constructors
public DateTime(int year, int month, int day)

public DateTime(int year, int month, int day, Calendar calendar)

public DateTime(int year, int month, int day, int hour, int minute, int second)

public DateTime(int year, int month, int day, int hour, int minute, int second, Calendar calendar)

public DateTime(int year, int month, int day, int hour, int minute, int second, DateTimeKind kind)

public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond)

public DateTime(int year, int month, int day, int hour,
                    int minute, int second, int millisecond, Calendar calendar)

public DateTime(int year, int month, int day, int hour,
                   int minute, int second, int millisecond, Calendar calendar, DateTimeKind kind)

public DateTime(int year, int month, int day, int hour,
                    int minute, int second, int millisecond, DateTimeKind kind)

public DateTime(long ticks)

public DateTime(long ticks, DateTimeKind kind)
  • TODO - EXAMPLE
Now là một thuộc tính tĩnh của DateTime nó trả về đối tượng DateTime mô tả thời điểm hiện tại.
// Đối tượng mô tả thời điểm hiện tại.

DateTime now = DateTime.Now;

Console.WriteLine("Now is "+ now);

2- Các thuộc tính DateTime

DateTimePropertiesExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DateTimeTutorial
{
  class DateTimePropertiesExample
  {

      public static void Main(string[] args)
      {

          // Tạo một đối tượng DateTime (năm, tháng, ngày, giờ, phút, giây).
          DateTime aDateTime = new DateTime(2005, 11, 20, 12, 1, 10);

          // In ra các thông tin:

          Console.WriteLine("Day:{0}", aDateTime.Day);
          Console.WriteLine("Month:{0}", aDateTime.Month);
          Console.WriteLine("Year:{0}", aDateTime.Year);
          Console.WriteLine("Hour:{0}", aDateTime.Hour);
          Console.WriteLine("Minute:{0}", aDateTime.Minute);
          Console.WriteLine("Second:{0}", aDateTime.Second);
          Console.WriteLine("Millisecond:{0}", aDateTime.Millisecond);

          // Enum {Monday, Tuesday,... Sunday}
          DayOfWeek dayOfWeek = aDateTime.DayOfWeek;  


          Console.WriteLine("Day of Week:{0}", dayOfWeek );
       

          Console.WriteLine("Day of Year: {0}", aDateTime.DayOfYear);

          // Một đối tượng chỉ mô tả thời gian (giờ phút giây,..)
          TimeSpan timeOfDay = aDateTime.TimeOfDay;

          Console.WriteLine("Time of Day:{0}", timeOfDay);

          // Quy đổi ra Ticks (1 giây = 10.000.000 Ticks)
          Console.WriteLine("Tick:{0}", aDateTime.Ticks);

          // {Local, Itc, Unspecified}
          DateTimeKind kind = aDateTime.Kind;

          Console.WriteLine("Kind:{0}", kind);

          Console.Read();
      }
  }

}
Chạy ví dụ:

3- Thêm và bớt thời gian

DateTime cung cấp các phương thức cho phép bạn thêm, hoặc trừ một khoảng thời gian. TimeSpan là một class chứa thông tin một khoảng thời gian, nó có thể tham gia như một tham số trong các phương thức thêm bớt thời gian của DateTime.
Ví dụ:
AddSubtractExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DateTimeTutorial
{
   class AddSubtractExample
   {

       public static void Main(string[] args)
       {
           // Thời điểm hiện tại.
           DateTime aDateTime = DateTime.Now;

           Console.WriteLine("Now is " + aDateTime);

           // Một khoảng thời gian.
           // 1 giờ + 1 phút
           TimeSpan aInterval = new System.TimeSpan(0, 1, 1, 0);

           // Thêm khoảng thời gian.
           DateTime newTime = aDateTime.Add(aInterval);


           Console.WriteLine("After add 1 hour, 1 minute: " + newTime);


           // Trừ khoảng thời gian.
           newTime = aDateTime.Subtract(aInterval);

           Console.WriteLine("After subtract 1 hour, 1 minute: " + newTime);

           Console.Read();
       }
   }

}
Chạy ví dụ:
Class DateTime cũng có các phương thức cho phép thêm bớt một loại đơn vị thời gian chẳng hạn:
  • AddYears
  • AddDays
  • AddMinutes
  • ...
Ví dụ:
AddSubtractExample2.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DateTimeTutorial
{
  class AddSubtractExample2
  {
      public static void Main(string[] args)
      {
          // Thời điểm hiện tại.
          DateTime aDateTime = DateTime.Now;

          Console.WriteLine("Now is " + aDateTime);          

          // Thêm 1 năm
          DateTime newTime = aDateTime.AddYears(1);


          Console.WriteLine("After add 1 year: " + newTime);


          // Trừ 1 giờ
          newTime = aDateTime.AddHours(-1);

          Console.WriteLine("After add -1 hour: " + newTime);

          Console.Read();
      }
  }

}
Chạy ví dụ:
Đôi khi bạn cần tìm ngày đầu tiên hoặc ngày cuối cùng của một tháng hoặc một năm cụ thể. Chẳng hạn bạn đặt ra câu hỏi tháng 2 năm 2015 là ngày bao nhiêu? ngày 28 hay 29. Ví dụ dưới đây có một vài phương thức tiện ích để làm điều này:
FirstLastDayDemo.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DateTimeTutorial
{
  class FirstLastDayDemo
  {
      public static void Main(string[] args)
      {

          Console.WriteLine("Today is " + DateTime.Today);

          DateTime yesterday = GetYesterday();

          Console.WriteLine("Yesterday is " + yesterday);


          // Ngày đầu tiên của tháng 2 năm 2015
          DateTime aDateTime = GetFistDayInMonth(2015, 2);

          Console.WriteLine("First day of 2-2015: " + aDateTime);

          // Ngày cuối cùng của tháng 2 năm 2015
          aDateTime = GetLastDayInMonth(2015, 2);

          Console.WriteLine("Last day of 2-2015: " + aDateTime);

          // Ngày đầu tiên của năm 2015
          aDateTime = GetFirstDayInYear(2015);

          Console.WriteLine("First day year 2015: " + aDateTime);

          // Ngày cuối cùng của năm 2015
          aDateTime = GetLastDayInYear(2015);

          Console.WriteLine("First day year 2015: " + aDateTime);

          Console.Read();
      }

      // Trả về ngày hôm qua.
      public static DateTime GetYesterday()
      {
          // Ngày hôm nay.
          DateTime today = DateTime.Today;
          // Trả về ngày trước 1 ngày.
          return today.AddDays(-1);
      }

      // Trả về ngày đầu tiên của năm
      public static DateTime GetFirstDayInYear(int year)
      {
          DateTime aDateTime = new DateTime(year, 1, 1);
          return aDateTime;
      }

      // Trả về ngày cuối cùng của năm.
      public static DateTime GetLastDayInYear(int year)
      {
          DateTime aDateTime = new DateTime(year +1, 1, 1);

          // Trừ đi một ngày.
          DateTime retDateTime = aDateTime.AddDays(-1);

          return retDateTime;
      }

      // Trả về ngày đầu tiên của tháng
      public static DateTime GetFistDayInMonth(int year, int month)
      {
          DateTime aDateTime = new DateTime(year, month, 1);

          return aDateTime;
      }

      // Trả về ngày cuối cùng của tháng.
      public static DateTime GetLastDayInMonth(int year, int month)
      {
          DateTime aDateTime = new DateTime(year, month, 1);

          // Cộng thêm 1 tháng và trừ đi một ngày.
          DateTime retDateTime = aDateTime.AddMonths(1).AddDays(-1);

          return retDateTime;
      }

  }

}
Chạy ví dụ:

4- Đo khoảng thời gian

Bạn có hai đối tượng DateTime, bạn có thể tính được khoảng thời gian giữa 2 đối tượng này, kết quả nhận được là một đối tượng TimeSpan.
IntervalDemo.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DateTimeTutorial
{
  class IntervalDemo
  {
      public static void Main(string[] args)
      {
          // Thời điểm hiện tại.
          DateTime aDateTime = DateTime.Now;

          // Thời điểm năm 2000
          DateTime y2K = new DateTime(2000,1,1);

          // Khoảng thời gian từ năm 2000 tới nay.
          TimeSpan interval = aDateTime.Subtract(y2K);


          Console.WriteLine("Interval from Y2K to Now: " + interval);

          Console.WriteLine("Days: " + interval.Days);
          Console.WriteLine("Hours: " + interval.Hours);
          Console.WriteLine("Minutes: " + interval.Minutes);
          Console.WriteLine("Seconds: " + interval.Seconds);


          Console.Read();
      }
  }

}
Chạy ví dụ:

5- So sánh hai đối tượng DateTime

DateTime có một phương thức tĩnh là Compare. Phương thức dùng để so sánh 2 đối tượng DateTime xem đối tượng nào sớm hơn đối tượng còn lại:
// Nếu giá trị < 0 nghĩa là firstDateTime sớm hơn (đứng trước)
// Nếu giá trị > 0 nghĩa là secondDateTime sớm hơn (đứng trước).
// Nếu giá trị = 0 nghĩa là 2 đối tượng này giống nhau về mặt thời gian.

public static int Compare(DateTime firstDateTime, DateTime secondDateTime);
CompareDateTimeExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DateTimeTutorial
{
  class CompareDateTimeExample
  {
      public static void Main(string[] args)
      {
          // Thời điểm hiện tại.
          DateTime firstDateTime = new DateTime(2000, 9, 2);

          DateTime secondDateTime = new DateTime(2011, 1, 20);

          int compare = DateTime.Compare(firstDateTime, secondDateTime);

          Console.WriteLine("First DateTime: " + firstDateTime);
          Console.WriteLine("Second DateTime: " + secondDateTime);

          Console.WriteLine("Compare value: " + compare);// -1

          if (compare < 0)
          {
              // firstDateTime sớm hơn secondDateTime
              Console.WriteLine("firstDateTime is earlier than secondDateTime");
          }
          else
          {
              // firstDateTime muộn hơn secondDateTime
              Console.WriteLine("firstDateTime is laster than secondDateTime");
          }

          Console.Read();
      }
  }

}
Chạy ví dụ:

6- Định dạng tiêu chuẩn DateTime

Định dạng DateTime nghĩa là chuyển đổi đối tượng DateTime thành một string theo một khuôn mẫu nào đó, chẳng hạn theo định dạng ngày/tháng/năm, ... hoặc định dạng dựa vào địa phương (locale) cụ thể.
Phương thức GetDateTimeFormats của DateTime:
  • Chuyển đổi giá trị của đối tượng này (DateTime) thành một mảng các string đã định dạng theo các chuẩn được hỗ trợ.
AllStandardFormatsDemo.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DateTimeTutorial
{
  class AllStandardFormatsDemo
  {
      public static void Main(string[] args)
      {

          DateTime aDateTime = new DateTime(2015, 12, 20, 11, 30, 50);

          // Một mảng các string kết quả định dạng được hỗ trợ.
          string[] formattedStrings = aDateTime.GetDateTimeFormats();

          foreach (string format in formattedStrings)
          {
              Console.WriteLine(format);
          }


          Console.Read();
      }
  }

}
Chạy ví dụ:
Ví dụ trên liệt kê ra các string sau khi định dạng một đối tượng DateTime theo các tiêu chuẩn có sẵn được hỗ trợ bởi .NET. Để lấy định dạng theo một mẫu cụ thể bạn sử dụng một trong các phương thức sau:
Methods Description
ToString(String, IFormatProvider) Chuyển đổi các giá trị của đối tượng DateTime hiện thành chuỗi đại diện tương đương của nó bằng cách sử dụng định dạng quy định (Tham số String) và các thông tin định dạng văn hóa cụ thể (Tham số IFormatProvider).
ToString(IFormatProvider)

Chuyển đổi giá trị của đối tượng DateTime hiện tại thành một string tương ứng với thông tin định dạng văn hóa (culture) cho bởi tham số.

ToString(String) Chuyển đổi các giá trị của đối tượng DateTime hiện thành một chuỗi tương đương của nó bằng cách sử dụng định dạng quy định và các quy ước định dạng của các nền văn hóa hiện nay.
Ví dụ dưới đây định dạng DateTime theo định dạng 'd', và chỉ định rõ văn hóa trong tham số.
SimpleDateTimeFormat.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;

namespace DateTimeTutorial
{
  class SimpleDateTimeFormat
  {
      public static void Main(string[] args)
      {

          DateTime aDateTime = new DateTime(2015, 12, 20, 11, 30, 50);

          Console.WriteLine("DateTime: " + aDateTime);

          String d_formatString = aDateTime.ToString("d");

          Console.WriteLine("Format 'd' : " + d_formatString);


          // Theo văn hóa Mỹ.
          CultureInfo enUs = new CultureInfo("en-US");

          // ==> 12/20/2015 (MM/dd/yyyy)
          Console.WriteLine("Format 'd' & en-US: " + aDateTime.ToString("d", enUs));


          // Theo văn hóa Việt Nam.
          CultureInfo viVn = new CultureInfo("vi-VN");

          // ==> 12/20/2015 (dd/MM/yyyy)
          Console.WriteLine("Format 'd' & vi-VN: " + aDateTime.ToString("d", viVn));


          Console.Read();
      }
  }

}
Chạy ví dụ:
Các ký tự định dạng tiêu chuẩn.
Code Pattern
"d" Ngày tháng năm ngắn
"D" Ngày tháng năm dài
"f" Ngày tháng năm dài, thời gian ngắn
"F" Ngày tháng năm dài, thời gian dài.
"g" Ngày tháng thời gian nói chung. Thời gian ngắn.
"G" Ngày tháng thời gian nói chung. Thời gian dài.
"M", 'm" Tháng/ngày.
"O", "o" Round-trip date/time.
"R", "r" RFC1123
"s" Ngày tháng thời gian có thể sắp xếp
"t" Thời gian ngắn
"T" Thời gian dài
"u" Ngày tháng năm có thể sắp xếp phổ biến (Universal sortable date time).
"U" Ngày tháng năm thời gian dài, phổ biến (Universal full date time).
"Y", "y" Năm tháng
SimpleDateTimeFormatAll.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DateTimeTutorial
{
  class SimpleDateTimeFormatAll
  {
      public static void Main(string[] args)
      {
          char[] formats = {'d', 'D','f','F','g','G','M', 'm','O', 'o','R', 'r','s','t','T','u','U','Y', 'y'};


          DateTime aDateTime = new DateTime(2015, 12, 20, 11, 30, 50);

          foreach (char ch in formats)
          {
              Console.WriteLine("\n======" + ch + " ========\n");
              // Một mảng các string kết quả định dạng được hỗ trợ.
              string[] formattedStrings = aDateTime.GetDateTimeFormats(ch);

              foreach (string format in formattedStrings)
              {
                  Console.WriteLine(format);
              }
          }
       


          Console.ReadLine();
      }
  }

}
Chạy ví dụ:

======d ========

12/20/2015
12/20/15
12/20/15
12/20/2015
15/12/20
2015-12-20
20-Dec-15

======D ========

Sunday, December 20, 2015
December 20, 2015
Sunday, 20 December, 2015
20 December, 2015

======f ========

Sunday, December 20, 2015 11:30 AM
Sunday, December 20, 2015 11:30 AM
Sunday, December 20, 2015 11:30
Sunday, December 20, 2015 11:30
December 20, 2015 11:30 AM
December 20, 2015 11:30 AM
December 20, 2015 11:30
December 20, 2015 11:30
Sunday, 20 December, 2015 11:30 AM
Sunday, 20 December, 2015 11:30 AM
Sunday, 20 December, 2015 11:30
Sunday, 20 December, 2015 11:30
20 December, 2015 11:30 AM
20 December, 2015 11:30 AM
20 December, 2015 11:30
20 December, 2015 11:30

======F ========

Sunday, December 20, 2015 11:30:50 AM
Sunday, December 20, 2015 11:30:50 AM
Sunday, December 20, 2015 11:30:50
Sunday, December 20, 2015 11:30:50
December 20, 2015 11:30:50 AM
December 20, 2015 11:30:50 AM
December 20, 2015 11:30:50
December 20, 2015 11:30:50
Sunday, 20 December, 2015 11:30:50 AM
Sunday, 20 December, 2015 11:30:50 AM
Sunday, 20 December, 2015 11:30:50
Sunday, 20 December, 2015 11:30:50
20 December, 2015 11:30:50 AM
20 December, 2015 11:30:50 AM
20 December, 2015 11:30:50
20 December, 2015 11:30:50

======g ========

12/20/2015 11:30 AM
12/20/2015 11:30 AM
12/20/2015 11:30
12/20/2015 11:30
12/20/15 11:30 AM
12/20/15 11:30 AM
12/20/15 11:30
12/20/15 11:30
12/20/15 11:30 AM
12/20/15 11:30 AM
12/20/15 11:30
12/20/15 11:30
12/20/2015 11:30 AM
12/20/2015 11:30 AM
12/20/2015 11:30
12/20/2015 11:30
15/12/20 11:30 AM
15/12/20 11:30 AM
15/12/20 11:30
15/12/20 11:30
2015-12-20 11:30 AM
2015-12-20 11:30 AM
2015-12-20 11:30
2015-12-20 11:30
20-Dec-15 11:30 AM
20-Dec-15 11:30 AM
20-Dec-15 11:30
20-Dec-15 11:30

======G ========

12/20/2015 11:30:50 AM
12/20/2015 11:30:50 AM
12/20/2015 11:30:50
12/20/2015 11:30:50
12/20/15 11:30:50 AM
12/20/15 11:30:50 AM
12/20/15 11:30:50
12/20/15 11:30:50
12/20/15 11:30:50 AM
12/20/15 11:30:50 AM
12/20/15 11:30:50
12/20/15 11:30:50
12/20/2015 11:30:50 AM
12/20/2015 11:30:50 AM
12/20/2015 11:30:50
12/20/2015 11:30:50
15/12/20 11:30:50 AM
15/12/20 11:30:50 AM
15/12/20 11:30:50
15/12/20 11:30:50
2015-12-20 11:30:50 AM
2015-12-20 11:30:50 AM
2015-12-20 11:30:50
2015-12-20 11:30:50
20-Dec-15 11:30:50 AM
20-Dec-15 11:30:50 AM
20-Dec-15 11:30:50
20-Dec-15 11:30:50

======M ========

December 20

======m ========

December 20

======O ========

2015-12-20T11:30:50.0000000

======o ========

2015-12-20T11:30:50.0000000

======R ========

Sun, 20 Dec 2015 11:30:50 GMT

======r ========

Sun, 20 Dec 2015 11:30:50 GMT

======s ========

2015-12-20T11:30:50

======t ========

11:30 AM
11:30 AM
11:30
11:30

======T ========

11:30:50 AM
11:30:50 AM
11:30:50
11:30:50

======u ========

2015-12-20 11:30:50Z

======U ========

Sunday, December 20, 2015 4:30:50 AM
Sunday, December 20, 2015 04:30:50 AM
Sunday, December 20, 2015 4:30:50
Sunday, December 20, 2015 04:30:50
December 20, 2015 4:30:50 AM
December 20, 2015 04:30:50 AM
December 20, 2015 4:30:50
December 20, 2015 04:30:50
Sunday, 20 December, 2015 4:30:50 AM
Sunday, 20 December, 2015 04:30:50 AM
Sunday, 20 December, 2015 4:30:50
Sunday, 20 December, 2015 04:30:50
20 December, 2015 4:30:50 AM
20 December, 2015 04:30:50 AM
20 December, 2015 4:30:50
20 December, 2015 04:30:50

======Y ========

December, 2015

======y ========

December, 2015

DateTime.Parse(string)

Nếu bạn có một chuỗi Date định dạng tiêu chuẩn bạn dễ dàng chuyển nó thành đối tượng DateTime thông qua phương thức tĩnh DateTime.Parse(string). Thông thường các chuỗi ngày tháng thời gian bạn thấy trên Internet là các chuỗi định dạng chuẩn, các Database MySQL hoặc SQL Server cũng sử dụng các định dạng chuẩn để hiển thị ngày tháng thời gian.
// Chuỗi thời gian bạn thấy trên Http Header
string httpTime = "Fri, 21 Feb 2011 03:11:31 GMT";

// Chuỗi thời gian thấy trên w3.org
string w3Time = "2016/05/26 14:37:11";

// Chuỗi thời gian thấy trên nytimes.com
string nyTime = "Thursday, February 26, 2012";

// Chuỗi thời gian tiêu chuẩn ISO 8601.
string isoTime = "2016-02-10";

// Chuỗi thời gian khi xem ngày giờ tạo/ sửa của file trên windows.
string windowsTime = "11/21/2015 11:35 PM";

// Chuỗi thời gian trên Windows Date and Time panel
string windowsPanelTime = "11:07:03 PM";

7- Tùy biến định dạng DateTime

Trong phần này tôi sẽ hướng dẫn bạn chuyển một đối tượng DateTime ra một string có định dạng tùy biến, chẳng hạn "dd/MM/yyyy",.... và ngược lại.

Tùy biến DateTime --> string:

Sử dụng DateTime.ToString(string):
string format = "dd/MM/yyyy HH:mm:ss";

DateTime now = DateTime.Now;

// ==> 18/03/2016 23:49:39
string s = now.ToString(format);
CustomDateTimeFormatExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DateTimeTutorial
{
   class CustomDateTimeFormatExample
   {

       public static void Main(string[] args)
       {
           // Kiểu định dạng.
           string format = "dd/MM/yyyy HH:mm:ss";

           DateTime now = DateTime.Now;

           string s = now.ToString(format);

           Console.WriteLine("Now: " + s);

           Console.Read();

       }

   }

}

Tùy biến string --> DateTime

public static DateTime Parse(string s)

public static DateTime Parse(string s, IFormatProvider provider)

public static DateTime Parse(string s, IFormatProvider provider, DateTimeStyles styles)


public static bool TryParseExact(string s, string format,
           IFormatProvider provider, DateTimeStyles style,
           out DateTime result)

public static bool TryParseExact(string s, string[] formats,
           IFormatProvider provider, DateTimeStyles style,
           out DateTime result)
Ví dụ:
Phương thức Ví dụ
static DateTime Parse(string) // Xem thêm phần định dạng chuẩn DateTime.
string httpHeaderTime = "Fri, 21 Feb 2011 03:11:31 GMT";
DateTime.Parse(httpHeaderTime);
static DateTime ParseExact(
  string s,
  string format,
  IFormatProvider provider
)
string dateString = "20160319 09:57";
DateTime.ParseExact(dateString ,"yyyyMMdd HH:mm",null);
static bool TryParseExact(
   string s,
   string format,
   IFormatProvider provider,
   DateTimeStyles style,
   out DateTime result
)
Phương thức này rất giống với ParseExact, tuy nhiên nó trả về boolean, true nếu chuỗi thời gian là phân tích được, ngược lại trả về false.
  (Xem thêm ví dụ dưới đây).
ParseDateStringExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DateTimeTutorial
{
   class ParseDateStringExample
   {

       public static void Main(string[] args)
       {

           string dateString = "20160319 09:57";

           // Sử dụng ParseExact
           DateTime dateTime = DateTime.ParseExact(dateString, "yyyyMMdd HH:mm", null);

           Console.WriteLine("Input dateString: " + dateString);

           Console.WriteLine("Parse Results: " + dateTime.ToString("dd-MM-yyyy HH:mm:ss"));

           // Chuỗi datetime có khoảng trắng phía trước.
           dateString = "  20110319 11:57";

           // Sử dụng TryParseExact.
           // Phương thức trả về true nếu chuỗi dateString có thể phân tích được.
           // Và trả về giá trị tại tham số 'out dateTime'.
           bool successful = DateTime.TryParseExact(dateString, "yyyyMMdd HH:mm", null,
                    System.Globalization.DateTimeStyles.AllowLeadingWhite,
                    out dateTime);

           Console.WriteLine("\n------------------------\n");

           Console.WriteLine("Input dateString: " + dateString);

           Console.WriteLine("Can Parse? :" + successful);

           if (successful)
           {
               Console.WriteLine("Parse Results: " + dateTime.ToString("dd-MM-yyyy HH:mm:ss"));
           }


           Console.Read();
       }
   }

}
Chạy ví dụ: