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:
- [TestMethod]
- public void FailingTest()
- {
- var date = new DateTime(2011, 11, 11);
- var expected = "2011/11/11";
- var actual = date.ToString("yyyy/MM/dd");
- Assert.AreEqual(expected, actual);
- }
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:
- [TestMethod]
- public void SucessfulTest()
- {
- var date = new DateTime(2011, 11, 11);
- var expected = "2011/11/11";
- var actual = date.ToString("yyyy'/'MM'/'dd");
- Assert.AreEqual(expected, actual);
- }
Un pierādījumam, ka “works on my machine”, attēls ar testa rezultātiem:
