การแยกวันที่ออกจากสตริง

Fish Shell:
การแยกวันที่ออกจากสตริง

วิธีการ:

ใน Fish Shell, คุณไม่มีคำสั่งที่สร้างขึ้นมาเฉพาะกิจสำหรับการแยกวันที่จากสตริง สิ่งที่คุณต้องพึ่งพาคือยูทิลิตี้ภายนอกเช่น date (ที่มีให้ใช้งานใน Linux และ macOS) หรือใช้เครื่องมือของบุคคลที่สามที่นิยมเช่น GNU date สำหรับการแยกวันที่ที่ซับซ้อนยิ่งขึ้น นี่คือวิธีการทำ:

การใช้ date กับ Fish:

เพื่อแปลงสตริงวันที่ในรูปแบบ “YYYY-MM-DD”, คุณสามารถใช้คำสั่ง date โดยมีตัวเลือก -d (หรือ --date สำหรับ GNU date) ตามด้วยสตริง ตัวเลือก + ใช้เพื่อจัดรูปแบบผลลัพธ์

set date_str "2023-04-01"
date -d $date_str +"%A, %d %B %Y"
# ผลลัพธ์: Saturday, 01 April 2023

สำหรับ macOS (ซึ่งต้องการรูปแบบต่าง ๆ สำหรับตัวประชุม -j และ -f):

set date_str "2023-04-01"
date -j -f "%Y-%m-%d" $date_str +"%A, %d %B %Y"
# ผลลัพธ์: Saturday, 01 April 2023

การใช้ GNU date สำหรับการแยกวันที่ที่ซับซ้อน:

GNU date มีความยืดหยุ่นมากขึ้นกับรูปแบบสตริง สามารถตรวจจับรูปแบบสตริงวันที่ที่พบบ่อยโดยไม่ต้องระบุรูปแบบข้อมูลนำเข้าโดยชัดเจน:

set complex_date_str "April 1, 2023 14:00"
date -d "$complex_date_str" '+%Y-%m-%d %H:%M:%S'
# ผลลัพธ์: 2023-04-01 14:00:00

อย่างไรก็ตามเมื่อทำงานกับสตริงวันที่ที่อาจไม่ได้รับการรู้จักอัตโนมัติหรือเมื่อควบคุมรูปแบบข้อมูลนำเข้าอย่างแม่นยำจำเป็น การระบุรูปแบบข้อมูลนำเข้ากับ GNU date ไม่ได้รับการสนับสนุนโดยตรง ในกรณีเหล่านั้น พิจารณาประมวลผลสตริงล่วงหน้าหรือใช้เครื่องมืออื่นที่ออกแบบมาสำหรับกระบวนการแยกวันที่ที่ซับซ้อนยิ่งขึ้น