Nie mam zielonego pojęcia jaki system template'ów masz w tym visual webgui, ale umieść sobie datę w takim elemencie:
<time datetime="{0}">{1}</time>
Gdzie {0}
to data w formacie zgodnym ze specyfikacją, tj. np. jakaśData.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
, a w {1}
wstaw sobie co tam chcesz, żeby było domyślnie albo gdyby ktoś miał wyłączony javascript, np. jakaśData.ToString(CultureInfo.GetCultureInfo("en-US"))
.
Po stronie klienta możesz zamienić treść takim skryptem (użyte jQuery):
$(document).ready(function () {
$('time[datetime]').each(function (idx, element) {
var $element = $(element);
var date = new Date($element.attr('datetime'));
if(!isNaN(date.getTime()))
$element.text(date.toLocaleString());
});
});
Druga możliwość to odczytanie locale z requestu (nagłówek Accept-Language
) i sformatowanie daty zgodnie z tym locale jeszcze po stronie serwera. Plus jest taki, że nie dzieje się to po client-side, a minus to zignorowanie formatów, które użytkownik mógł w systemie zmienić sobie sam (ja przez długi czas miałem zmieniony format krótkiej daty).