Hầu hết các ngôn ngữ lập trình đều có sẵn thư viện để format thời gian, vì dù cho mỗi người một nghề - người làm web, sysadmin, kẻ làm data, scientist nhưng đâu ai thoát khỏi được thời gian?
Cứ tưởng các ngôn ngữ lập trình format sẽ giống nhau, học 1 lần là dùng được mãi, ai ngờ!
Photo by Aron Visuals on Unsplash
Linux date, C, C++
Lấy làm mốc chuẩn, chương trình date
trên UNIX/Linux dùng Ymd HMS cho ngày tháng năm giờ phút giây
$ date +"%Y/%m/%d %H:%M:%S"
2023/01/04 20:16:48
$ date --version
date (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by David MacKenzie.
Có vẻ như bắt nguồn từ function strftime
trong time.h
của C https://en.cppreference.com/w/c/chrono/strftime, dễ hiểu C++ và Python cũng kế thừa và phát huy từ đó. Xem ví dụ tại https://strftime.org/
>>> import datetime
>>> datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S")
'2023/01/04 20:27:21'
Java format time
Java (và thế nên ElasticSearch - 1 chương trình viết bằng Java), sử dụng format khác. Ở đây sẽ dùng lein repl
để chạy code Clojure, gọi thư viện Java cho tiện (cài lein: sudo apt install leiningen).
$ lein repl [0]
nREPL server started on port 32771 on host 127.0.0.1 - nrepl://127.0.0.1:32771
REPL-y 0.4.3, nREPL
Clojure 1.10.1
OpenJDK 64-Bit Server VM 11.0.17+8-post-Ubuntu-1ubuntu220.04
...
user=> (.format (java.text.SimpleDateFormat. "yyyy/MM/dd HH:mm:ss") (new java.util.Date))
"2023/01/04 20:33:12"
- Java dùng y thường cho năm, M hoa cho tháng , m thường cho phút, s thường cho giây.
- Python dùng Y hoa cho năm, m thường cho tháng, M hoa cho phút, S hoa cho giây.
Go lang - một mình một kiểu
Ra đời tận những năm 2000, Go quyết định format 1 mình 1 kiểu không giống ai trên đời:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Now()
fmt.Printf("%s\n", t.Format("2006/01/02 15:04:05"))
}
https://pkg.go.dev/time#pkg-constants
Kết luận
Vì đúng sai chỉ là do góc nhìn, nên các công nhân phải chịu làm dâu trăm họ để có tiền mua cơm.
Hết.
HVN at https://pymi.vn and https://www.familug.org.