C # tarih saat biçimindeki tek bir alıntı ne anlama gelir?


55

Biz bu sabit C # var:

System.Globalization.DateTimeFormatInfo.InvariantInfo.SortableDateTimePattern

Bu değere sahiptir:

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

Ben ParseExactişlevde kullanmak ve daha sonra da yyyy-MM-ddTHH:mm:ssçalışır.

Tek alıntıların ne için olduğunu anlayamıyorum.

Yanıtlar:


76

Bu bir var değişmez dize sınırlayıcısı .

Tek tırnaklar arasındaki hiçbir şey değişmez bir karakter olarak yorumlanır ve özel bir biçim dizesi olarak yorumlanmaz.

Ters eğik çizgi kullanarak kaçmaya eşdeğerdir: dd'T'HHile aynıdır dd\THH.

Senin dizesi yyyy'-'MM'-'dd'T'HH':'mm':'ss, tırnak etrafında gereksizdir -ve Tbu özel biçim dizeleri değildir ve bu nedenle her zaman dize hazır olarak yorumlanacaktır olarak. Bununla birlikte : , mevcut kültür için uygun bir zaman ayırıcısını değerlendiren bir format belirleyicidir . Alıntı olarak , mevcut kültürden bağımsız olarak ':', kelimenin tam anlamıyla karakterin :her zaman kullanılacağı anlamına gelir .


2

Bunun Windows GetDateFormat işlevi tarafından kullanılan formatla aynı olduğunu bilmek yararlıdır . Elde edilen dizeye eklemek istediğiniz bir değişmezi belirtmek için kesme işareti kullanın.

Dize biçimlendirme kodlarıyla ilgili daha fazla belge şu adreste bulunabilir:

Dizenizde, kelimenin tam anlamıyla tire, iki nokta üst üste ve T karakterleri eklemek istediğini belirtiyor :

yyyy '-'AA '-'dd 'T'SS ':'mm ':'ss

Genel olarak, tam anlamıyla bir tire ( -) veya iki nokta üst üste ( :), hatta eğik çizgi ( /) kullanarak tarih / saat oluşturmak istemezsiniz . Tarih / saat oluşturmak için eğik çizgi ve iki nokta işaretini kullanmayan kültürler için bunlar yanlış olduğu için:

  • 22/10/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
  • 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 ق.ظ

Aşağıdakileri belirtmek isterseniz ne yapmak istersiniz:

  • "tarih ayırıcısını burada koymalısınız"
  • "burada zaman ayırıcısını koymalısınız"

Özel kullanmak mı:

  • tarih ayırıcı değiştirme karakteri (/)
  • zaman ayırıcı değiştirme karakteri (:)

Ve aşağıdaki gibi bir biçim oluşturun:

gg / yyyy / AA ss: SS: dd

Bir işin bir tarih olarak göstermesi gerekebileceğini bilmiyorum:

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

Ancak bu şekilde yerelleştirici, kültürün doğru tarih ve saat ayırıcılarını ekleyecektir.

Oysa eğer anlamıyla istedi /, -veya ::

  • gg '/'yyyy '/'AA p ':'SS ':'mm

Kelimenin tam anlamıyla:

  • 22/2019/10 37:10:24

ziyade:

  • 22-2019-10 37∶10∶24

.NET'in tarih ve saat biçimi dizeleri ile aynı olduğunu sanmıyorum GetDateFormat. Belki de benzer, ancak örneğin anlamı yyyyyfarklıdır. Bu soru dikkat çekici bir miktar alıyor ve C # / hakkında olduğu göz önüne alındığında, ben bu ifadeyi düzeltmek ve bunun yerine .NET belgelerine bağlantı öneririz.
canton7
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.