Trong quản trị hệ thống Windows và tự động hóa tác vụ, làm việc với ngày tháng là nhu cầu không thể thiếu. Lệnh Get-Date PowerShell là công cụ mạnh mẽ giúp lấy và xử lý thông tin thời gian hiện tại, định dạng ngày tháng, tính toán khoảng cách thời gian và tích hợp vào các script phức tạp. Bài viết này sẽ đi sâu vào mọi khía cạnh của lệnh Get-Date, từ cú pháp cơ bản, tham số, đến các ứng dụng thực tế và những lỗi thường gặp, giúp bạn khai thác tối đa sức mạnh của lệnh này.
Lệnh Get-Date PowerShell là gì?

Get-Date là một lệnh (cmdlet) tích hợp sẵn trong môi trường PowerShell, thuộc module Microsoft.PowerShell.Utility. Nhiệm vụ chính của lệnh này là trả về một đối tượng DateTime đại diện cho ngày và giờ hiện tại trên hệ thống. Tuy nhiên, sức mạnh thực sự nằm ở khả năng tùy chỉnh:
Dùng tham số -Format: Get-Date -Format "yyyyMMdd_HHmmss". Kết quả là chuỗi không có ký tự phân cách, thích hợp để đặt tên file.
Sự khác nhau giữa -Format và -UFormat là gì?
-Format sử dụng ký tự đại diện của.NET (ví dụ: yyyy cho năm), trong khi -UFormat sử dụng ký tự của Unix (ví dụ: %Y cho năm). Kết quả hiển thị giống nhau nếu bạn dùng đúng cú pháp, nhưng cách viết khác nhau. Không nên trộn lẫn.
Làm thế nào để chuyển đổi giữa các múi giờ với Get-Date?
Get-Date chỉ lấy giờ địa phương. Để chuyển đổi múi giờ, bạn cần dùng lớp [System.TimeZoneInfo]. Ví dụ: $timeUtc = [DateTime]::UtcNow sau đó dùng [System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId($timeUtc, 'Pacific Standard Time').
Tại sao kết quả Get-Date lại hiển thị thứ tự ngày/tháng khác với mong muốn?
Định dạng mặc định phụ thuộc vào regional settings của hệ thống (Control Panel > Region). Để tránh phụ thuộc, luôn chỉ định rõ định dạng qua tham số -Format.
Có thể dùng Get-Date để tính tuổi hoặc khoảng cách thời gian không?
Có thể, bằng cách kết hợp với phép trừ hai đối tượng DateTime để có TimeSpan. Ví dụ: $age = (Get-Date) - (Get-Date -Date "1990-01-01") sau đó truy xuất $age.Days hoặc $age.TotalYears.
Lệnh Get-Date có thể sử dụng trong PowerShell Core (Linux/macOS) không?
Có, lệnh Get-Date hoạt động trên PowerShell Core 6 trở lên trên nền tảng Windows, Linux, macOS. Hành vi tương tự, nhưng múi giờ mặc định sẽ là giờ địa phương của hệ thống.
Kết luận

Lệnh Get-Date PowerShell là một trong những công cụ cơ bản nhưng vô cùng mạnh mẽ đối với bất kỳ ai làm việc với tự động hóa và quản trị hệ thống. Từ việc tạo timestamp cho log, tính toán thời gian, đến tích hợp vào các script phức tạp, Get-Date giúp bạn kiểm soát hoàn toàn thông tin thời gian một cách chính xác và linh hoạt. Hiểu rõ cú pháp, các tham số định dạng và những lưu ý khi sử dụng sẽ giúp bạn tránh được các lỗi phổ biến và tối ưu hóa hiệu suất công việc. Hãy bắt đầu thực hành ngay với các ví dụ trong bài để làm chủ lệnh Get-Date và nâng cao kỹ năng PowerShell của bạn.







