Jens Gyldenkærne Clausen wrote :
> Jeg har læst mig til at følgende kode øverst i et asp.net-dokument
> skulle formatere datoer mv. på dansk:
>
> <%@Page Culture="da-DK" Language="VB" %>
det bruger jeg også.
> Men det virker bare ikke. Datoer bliver stadig formateret således:
> "2-26-2002 11:44:18". Hvad har jeg overset?
>
> Datoen hentes fra en SQLserver og placeres med følgende linje:
>
> <asp:Label id="oprettet" runat="server"><%#
> DataBinder.Eval(Container.DataItem, "oprettet") %></asp:Label>
Mig bekendt skal du formattere datoen når du udskrive den. Jeg gør
det med
<%# System.Convert.ToDateTime(DataBinder.Eval(Container.DataItem, "oprettet").ToString()).ToString("dd. MMM yyyy") %>
Det er ToString(), der, når den påduttes et dato-object kan overloades
med en formatteringsstreng.
For ikke at skulle lave din culture-specifikation på hver side - hvor
jeg principielt ikke mener den hører hjemme, så kan du sætte den i
din global.aspx
Dette gør jeg som
protected void Application_BeginRequest(Object sender, EventArgs e)
{
try
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");
}
catch
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");
}
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
}
.... hvor en-GB så skal udskiftes. Idéen er - som jeg forstår det - at
localization i .Net sker på tråd-niveau, så tråden, der oprettes ved
det initialiserende request, får altså her den specifikke culture en-GB.
Så er du fri for at sætte det på hver side.
--
Jesper Stocholm
http://stocholm.dk
Ny FAQ for dk.edb.internet.webdesign.serverside.asp
se
http://asp-faq.dk