Thời gian/Số

Trình phân tích thời lượng ISO 8601

Phân tích chuỗi như "P3Y6M4DT12H30M5S" thành dạng dễ đọc, hoặc tạo chuỗi như vậy từ năm/tháng/ngày/giờ/phút/giây.


                        

An ISO 8601 duration (e.g. P3Y6M4DT12H30M5S) is a compact, unambiguous way to write a time span, used by many APIs and data formats, but hard to read without parsing it. This tool translates such a string into plain language and lets you build one from separate fields.

How to use it

Common uses

Things to keep in mind

The leading P stands for "period" and is required, just like the T that separates days from hours in the time part.

The base standard doesn't define a sign for durations — negative durations (to mean "ago") are only supported by specific implementations as an unofficial extension.

Bài viết về công cụ này: ISO 8601 Duration: cách viết một khoảng thời gian theo định dạng chuẩn

Câu hỏi thường gặp

Chuỗi như P3Y6M4DT12H30M5S có nghĩa là gì?

Đây là định dạng thời lượng chuẩn ISO 8601: P nghĩa là "period" (khoảng thời gian), theo sau là năm/tháng/ngày cho đến chữ T, sau đó là giờ/phút/giây. Trong ví dụ này là 3 năm, 6 tháng, 4 ngày, 12 giờ, 30 phút và 5 giây.

Thời lượng ISO khác gì với thời lượng đơn giản tính bằng giờ?

Không như đơn vị cố định (như trong máy tính thời lượng), các thành phần "năm" và "tháng" ở đây dựa trên lịch và không có số giây cố định — độ dài chính xác của chúng phụ thuộc vào ngày cụ thể mà chúng được áp dụng.

Định dạng tuần P4W có được hỗ trợ không?

Có, nhưng chỉ khi phân tích một chuỗi đã có sẵn. Khi tự xây dựng chuỗi của bạn, tuần cần được biểu thị bằng ngày, vì ISO 8601 không cho phép kết hợp tuần với các thành phần khác trong cùng một chuỗi.

Tôi có thể chỉ định giây hoặc phút thập phân không?

Có, chuẩn này chỉ cho phép phần thập phân ở thành phần cuối cùng của chuỗi — ví dụ PT1.5S (1,5 giây) hoặc PT1H30.5M (1 giờ 30,5 phút) đều hợp lệ, nhưng phần thập phân ở một thành phần không phải cuối cùng thì không.

Có tồn tại thời lượng ISO âm không?

Chuẩn ISO 8601 cơ bản không định nghĩa dấu cho thời lượng, nhưng một số triển khai (kể cả công cụ này) hỗ trợ dấu trừ ở đầu để biểu thị "trước đây" hoặc thời lượng đảo ngược — một phần mở rộng phổ biến, dù không chính thức.

Bài viết: Thời gian/Số

Thời gian Unix: vì sao máy tính đếm thời gian từ năm 1970

Vì sao ngày 1 tháng 1 năm 1970 trở thành mốc thời gian tham chiếu cho hầu hết các hệ thống máy tính.

Biểu thức cron: cách giải mã lịch chạy tác vụ

Cách giải mã một biểu thức như */15 * * * * và biết chính xác khi nào tác vụ sẽ chạy.

Hệ đếm số: vì sao có hệ nhị phân, bát phân và thập lục phân

Vì sao màu #FF5733 trong CSS được viết bằng chữ số thập lục phân thay vì thập phân.

Phép toán bit: AND, OR và XOR hoạt động như thế nào ở cấp độ bit

AND theo bit khác gì với AND logic, và vì sao lại cần thao tác trên từng bit riêng lẻ của một số.

Chênh lệch ngày: vì sao đếm số ngày phức tạp hơn tưởng tượng

Vì sao trừ ngày một cách ngây thơ có thể cho kết quả sai vì năm nhuận.

Tính tuổi: vì sao không đơn giản chỉ là trừ năm

Vì sao chỉ đơn giản trừ năm sinh có thể cho ra tuổi lớn hơn thực tế một tuổi.

Múi giờ: vì sao UTC không giống với GMT

Vì sao UTC không bao giờ thay đổi hai lần một năm, trong khi giờ London (GMT/BST) thì có.

Máy tính thời lượng: cách cộng đúng giờ, phút và giây

Vì sao khi cộng phút và giây cần "chuyển" phần dư sang hàng tiếp theo, giống như trong phép cộng thập phân.

Số tuần: vì sao các quốc gia khác nhau đếm tuần khác nhau

Vì sao ngày 1 tháng 1 đôi khi thuộc tuần 52 hoặc 53 của năm trước theo chuẩn ISO 8601.

Số La Mã: một hệ thống không có số 0 và không có giá trị theo vị trí hoạt động ra sao

Vì sao IV có nghĩa là 4 chứ không phải 6, và quy tắc trừ hoạt động thế nào trong số La Mã.

IEEE 754: vì sao 0.1 + 0.2 không bằng 0.3 trong code

Vì sao hầu như mọi ngôn ngữ lập trình đều in 0.1 + 0.2 thành 0.30000000000000004.

Số thành chữ: vì sao cần biến chữ số thành từ ngữ

Vì sao các văn bản ngân hàng ghi số tiền cả bằng số lẫn bằng chữ cùng một lúc.