คำพูดเดียวในรูปแบบเวลาวันที่ C # หมายถึงอะไร


55

เรามีเช่นค่าคงที่นี้ใน C #:

System.Globalization.DateTimeFormatInfo.InvariantInfo.SortableDateTimePattern

มันมีค่านี้

"yyyy'-'MM'-'dd'T'HH':'mm':'ss"

ฉันจะใช้มันใน ParseExactฟังก์ชั่นแล้วyyyy-MM-ddTHH:mm:ssทำงานเช่นกัน

ฉันไม่สามารถทราบได้ว่าราคาคำเดียวสำหรับอะไร

คำตอบ:


76

มันเป็นตัวคั่นสตริงตัวอักษรตัวคั่นสตริงตัวอักษร

สิ่งใดระหว่างคำพูดเดียวถูกตีความว่าเป็นตัวอักษรและจะไม่ถูกตีความว่าเป็นสตริงรูปแบบที่กำหนดเอง

พวกเขาเทียบเท่ากับการหลบหนีโดยใช้แบ็กสแลช: dd'T'HHเหมือนกันกับdd\THHเป็นเช่นเดียวกับ

ในสตริงของคุณyyyy'-'MM'-'dd'T'HH':'mm':'ssอัญประกาศนั้นไม่จำเป็นรอบ ๆ-และTเนื่องจากสตริงเหล่านั้นไม่ใช่สตริงรูปแบบที่กำหนดเองดังนั้นจะถูกตีความเป็นตัวอักษรสตริงเสมอ อย่างไรก็ตาม: เป็นตัวระบุรูปแบบซึ่งประเมินเป็นตัวคั่นเวลาที่เหมาะสมกับวัฒนธรรมปัจจุบัน การอ้างว่าเป็น':'ตัวอักษรหมายถึง:จะถูกนำมาใช้เสมอโดยไม่คำนึงถึงวัฒนธรรมปัจจุบัน


2

มีประโยชน์ที่จะทราบว่านี่เป็นรูปแบบเดียวกับที่ใช้โดย Windows GetDateFormatฟังก์ชันคุณใช้อะพอสโทรฟีเพื่อระบุตัวอักษรที่คุณต้องการแทรกลงในสตริงผลลัพธ์

เอกสารเพิ่มเติมของรหัสการจัดรูปแบบสตริงสามารถดูได้ที่:

ในสายของคุณมันจะ indiating ว่าแท้จริงต้องการเพิ่มยัติภังค์ทวิภาคและTตัวอักษร:

yyyy '-'MM '-'dd 'T'HH ':'mm':' ss

โดยทั่วไปคุณไม่ต้องการที่จะสร้างวัน / ครั้งด้วยอักษรยัติภังค์ ( -) หรือทวิภาค ( :) หรือแม้แต่ทับ ( /) เนื่องจากสิ่งเหล่านี้ผิดสำหรับวัฒนธรรมที่ไม่ใช้เครื่องหมายสแลชและโคลอนเพื่อสร้างวันที่ / เวลา:

  • 10/22/2019 10∶19∶54 ᴀᴍ
        1. 10:19:54
  • 2019.10.22 10:19:54
  • 2019-10-22 10.19.54
  • 2019-10-22 10:19:54
  • 2019-10-22 10:19:54 AM
  • 2019-10-22 ཆུ་ཚོད་ 10:19:54 སྔ་ཆ་
  • 2019-10-22 오전 10:19:54
      1. 2019 10:19:54 น
        1. 10:19:54
  • 22.10.19 10:19:54
  • 22.10.19 ý 10:19:54
  • 22.10.2019 10.19.54
  • 22.10.2019 10:19:54
  • 22.10.2019 10:19:54 pd
  • 22.10.2019 г. 10:19:54
  • 2019/10/22 10:19:54
  • 22-10-19 10.19.54
  • 22-10-19 10.19.54 น
  • 22-10-19 10:19:54
  • 22-10-19 ਸਵੇਰ 10:19:54
  • 22-10-2019 10:19:54
  • 22-10-2019 ৰাতিপু 10:19:54
  • 22 окт 19 10:19:54 น
  • 23/02/41 10:19:54 ص
  • 30/07/1398 10:19:54 ق.ظ

คุณต้องการทำอะไรถ้าคุณต้องการระบุ:

  • "ที่นี่คุณควรใส่ตัวคั่นวันที่"
  • "นี่คือที่ที่คุณควรใส่ตัวคั่นเวลา"

ใช้เป็นพิเศษ:

  • อักขระการแทนที่ตัวคั่นวันที่ (/)
  • อักขระการแทนที่ตัวคั่นเวลา (:)

และสร้างรูปแบบเช่น:

dd / yyyy / MM ss: HH: mm

ฉันไม่ทราบว่าธุรกิจที่จำเป็นต้องมีการแสดงวันที่:

  • 22/2019/10 37:10:24
  • 22-2019-10 37∶10∶24
  • 22 // 2019 // 10 37 :: 10 :: 24
      1. 10 37∶10∶24

แต่วิธีนี้ Localizer จะแทรกตัวคั่นวันที่และเวลาที่ถูกต้องของวัฒนธรรม

ในขณะที่ถ้าคุณอย่างแท้จริงขอให้/, -หรือ::

  • DD '/'ปปปป'/'เอ็มเอ็มเอสเอส':'เอชเอช':'มม

คุณจะได้รับ:

  • 22/2019/10 37:10:24

ค่อนข้างมากกว่า:

  • 22-2019-10 37∶10∶24

ฉันไม่คิดว่า .NET GetDateFormatของวันที่และรูปแบบเวลาสตริงจะเหมือนกับ อาจคล้ายกัน แต่ตัวอย่างเช่นความหมายของyyyyyมันแตกต่างกัน เนื่องจากคำถามนี้ได้รับความสนใจอย่างมากและเป็นเรื่องเกี่ยวกับ C # / ฉันขอแนะนำให้แก้ไขข้อความนี้และเชื่อมโยงไปยัง. doc เอกสาร. NET
canton7
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.