HEj! ToString("yyyy-MM-dd") funkar alldeles utmärkt, men den rekommenderade lösningen skulle vara att skriva typ: Måste säga att det är ett helvete ibland det där, inte minst när man har samma applikation på flera servrar, svenska, amerikanska, xp och liknande. Det är inte alltid det tar trots man ställer in servern korrekt. Personligen så hårdkodar jag som Andreas visade kanske oftare än vad som hade behövts .. Ett allternativ är väl att lägga in <globalization culture="SV-se"/> under system.web-taggen i Web.Config? Jag brukar själv använda detta sätt. Hej! Funkade braDataumformat i repeatern
På loopias servers så visas mina datum i engelskt ex 10/21/07 när jag vill ha det 2007-10-21.
Fältet är i en repeater och skrivs ut med
<code>
DataBinder.Eval(Container.DataItem, "Duedate"
</code>
Hur formaterar jag den så att den blir svensk.
Som info: I min access databas så sparas datumet med kort format dvs 2007-10-21. Men den tolkas om när sidan visas på servern.
Hur löser jag detta
/TYronneSv: Dataumformat i repeatern
<code>
((DateTime)DataBinder.Eval(Container.DataItem, "Duedate")).ToString("d",new CultureInfo("sv-SE"))
</code>
Alternativt kan man använda den kortare syntaxen:
<code>
((DateTime)Eval("Duedate")).ToString("d",new CultureInfo("sv-SE"))
</code>
På så vis får man formatteringen utförd av .NET. I det här fallet fungerar ToString("yyyy-MM-dd") troligen minst lika bra om inte bättre, men man bör undvika att hårdkoda in formatet om man nån gång i framtiden tänker sig en lokaliserad lösning...
Till sist skulle du nkunna passa på att sätta trådens Culture till "sv-SE" vilket skulle innebära att den fomatterade allt på svenska. T ex kan man göra det i Global.asax på typ Application_BeginRequest. Låter inte som världens snyggaste lösning, men det kommer från början från en demo som MS själva skrivit. Kom bara ihåg att om du jobbar med asynkrona metoder så är det inte säkert att den nya tråden hanterar saker med din nya culture. Ett alternativ skulle vara att byta trådens kultur precis innan du databinder och sen byta tillbaka för att inte störa resten av applikationen. Bara mina 2 cent. Hoppas du kan få ut något vettigt ur det hela...Sv: Dataumformat i repeatern
Sv:Dataumformat i repeatern
Sv:Dataumformat i repeatern
Jag testade dina exempel men jag får bara att:
i Codebehind har jag deklarerat
<code>
public CultureInfo myCIintl = new CultureInfo("sv-SE", false);
</code>
på Sidan:
<code>
<td valign="middle" width="120"> Kl:<%# DataBinder.Eval(Container.DataItem, "Duedate").ToString("d", myCIintl)%></td>
</code>
men får felet:
Error 29 No overload for method 'ToString' takes '2' arguments C:\Inetpub\wwwroot\Web_Grizzlys\Default.aspx 132
Jag har laggt till
using System.Globalization;
Varför blir det så?
/TyronneSv:Dataumformat i repeatern
jag fick använda convert i stället då fungerade det.
Tack!
/Tyronne