Mikroformáty jsou určeny pro snadnější získávání dat ze stránek, jak pro lidi, tak pro stroje. Jedním z problémů je, jak vkládat data a časy, aby byly pochopitelné pro lidi i snadno vyparsovatelné strojem.
Způsobů zápisu data a času existuje nespočet. Snad každý stát/jazyk definuje jiná pravidla pro jejich zápis. Ruku na srdce, kdo z nás přesně ví, jak správně zapisovat datum a čas v naší mateřštině? Případ od případu se může lišit a i správných způsobů je hned několik. Pro přenos časové informace existují standardní formáty, ale ty jsou pro lidi mnohem méně srozumitelné. Jak skloubit snadnou čitelnost pro lidi i stroje?
Mikroformáty na scénu
Kupodivu mnoho mikroformátů obsahuje i definici pro některý časový
údaj. Naštěstí, každý to neřeší jinou cestou, ale používá se návrhový vzor pro
zápis data a času. V tomto vzoru se používá tag abbr,
který uzavírá „lidskou interpretaci“ data a času, a v atributu
title jeho strojovou podobu dle ISO 8601. Navíc se ještě
využívá návrhového vzoru
třída pro definování, co datum právě vyjadřuje.
Datum publikace článku můžeme zapsat následujícím způsobem:
Publikováno
<abbr class="published"
title="2008-04-20T10:00:00Z">
20. dubna 2008 ve 12.00
</abbr>.
V ukázce si můžete všimnout, že čas se v atributu title
neshoduje s „lidskou“ podobou. Je to dáno tím, že jde o vyjádření
tzv. univerzálního času UTC. Ekvivalentně lze zapsat jako středoevropský
letní čas 2008-04-20T12:00:00+02:00.
Výpis v dotnetu
V ASP.NET se dají pro správný výpis použít dvě metody třídy
System.DateTime. Tou první je metoda
ToUniversalTime(), která čas převede na UTC, a tou druhou je
ToString("s"), která vytvoří textovou podobu tzv.
seřaditelného času. Nezapomeňte však přidat písmeno Z,
vyjadřující UTC.
<abbr class="published"
title="<%= item.DatePublished.ToUniversalTime().ToString("s") %>Z">
<%= item.DatePublished.ToString("f")%>
</abbr>
Bohužel, žádný ze standardních formátů přesně neodpovídá tomu,
který potřebujeme. Ale je tu možnost použít vlastní formát pro
univerzální vyjádření času yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'
nebo yyyy'-'MM'-'dd'T'HH':'mm':'sszz pro
System.DateTimeOffset.
Tagy: microformats, asp.net











Komentáře
Jiří Bureš
13.38 - 20. dubna 2008 | #
Michal Aichinger
13.44 - 20. dubna 2008 | #
Aleš Roubíček
14.20 - 20. dubna 2008 | #
David Grudl
14.52 - 20. dubna 2008 | #
Aleš Roubíček
15.39 - 20. dubna 2008 | #
Aleš Roubíček
15.46 - 20. dubna 2008 | #
kahi
16.13 - 20. dubna 2008 | #
Aleš Roubíček
16.25 - 20. dubna 2008 | #
kahi
16.52 - 20. dubna 2008 | #
Aleš Roubíček
16.58 - 20. dubna 2008 | #
kahi
18.04 - 20. dubna 2008 | #
Místo pro tvůj názor