DateTime.ToString() nianse

Nupat saskāros ar interesantu niansi, saistītu ar DateTime.ToString() formāta šablonu. Izrādās, ka slīpsvītra “/”, patiesībā ir speciālais šablona simbols, kurš tiek aizvietots ar datuma atdalītājsimbolu no reģionālajiem iestatījumiem.

Lai to pārbaudītu, var izmantot šādu testu:

  1.         [TestMethod]
  2.         public void FailingTest()
  3.         {
  4.             var date = new DateTime(2011, 11, 11);
  5.             var expected = "2011/11/11";
  6.             var actual = date.ToString("yyyy/MM/dd");
  7.             Assert.AreEqual(expected, actual);
  8.         }

Ja datorā ir LV reģionālie iestatījumi, tad šim testam vajadzētu izgāzties.

Ko darīt, ja vajag datumu noformēt ar slīpsvītru, kā atdalītāju? Pavisam vienkārši, slīpsvītru iekļaut apostrofos.

Šāds tests jau būs veiksmīgs:

  1.         [TestMethod]
  2.         public void SucessfulTest()
  3.         {
  4.             var date = new DateTime(2011, 11, 11);
  5.             var expected = "2011/11/11";
  6.             var actual = date.ToString("yyyy'/'MM'/'dd");
  7.             Assert.AreEqual(expected, actual);
  8.         }

Un pierādījumam, ka “works on my machine”, attēls ar testa rezultātiem:

image

Published 12 October 2011 06:30 PM by ivars.arins
Filed under: , , , ,

Leave a Comment

(obligāts) 
(obligāts) 
(brīvizvēles)
(obligāts)