2015-10-12 26 views
1

所以我有一個代碼可以將由「/」分隔的3個數字轉換爲最早的日期。所以2012年9月22日是2012年9月22日。然而一些日期顯示,早在1933年我想知道如何保持限於日期後年2000 這是確實的日期打印出來的代碼:c#中的限制日期時間到2000年以後的日期#

String v = Convert.ToString(year); 
      String x = Convert.ToString(mon); 
      String w = Convert.ToString(day); 
      String z = v + "-" + x + "-" + w; 

      DateTime fg; 
      if (DateTime.TryParse(z, out fg)){ 
        String hh = fg.ToString(); 
        DateTime dt = DateTime.Parse(hh, cultureinfo); 
       Console.Write(dt); 
      } 

回答

2

背的時候,Year 2000 Problem人們正在爭先恐後地弄清楚如何處理舊系統中的兩位數日期,這些日期從未爲整個四位數分配空間。如果可能的話,我建議你在自己的系統中避免使用兩位數的日期。處理現有的兩位日期

一種技術是引入了一個名爲date windowing概念,其中,較低的號碼日期將被解釋爲2000的較大的數字日期將被解釋爲1900年。這在很多情況下都有效,但是導致一位105歲的女士獲得了註冊幼兒園的邀請(以及其他許多問題)。

這是發生在這裏。

您可以控制用於決定是否有一個兩位數的年份是使用Calendar.TwoDigitYearMax

此屬性的當前或上個世紀截止允許2位數的年份進行適當轉換爲4-數字年份。例如,如果此屬性設置爲2029,則100年的範圍是從1930年到2029年。因此,2位數值30被解釋爲1930,而2位數值29被解釋爲2029.

相關問題