Datum / tijd.Parseren Van De Amerikaanse Datumnotatie C#

Waarschijnlijk een simpele vraag –

Ik aan het lezen ben in de gegevens van een aantal bestanden.

Mijn probleem is, dat wanneer ik aan het lezen ben in de datum van een amerikaans-bestand, ik parseer het zo:

DateSold = DateTime.Parse(t.Date)

Deze analyseert de string t.Datum in een datum-formaat, maar het opmaken van het amerikaanse datum naar een europese datum, bijvoorbeeld

Als de datum in het bestand op als 03/01/2011, het is te lezen als de 3e van januari, 2011, wanneer het moet voor de 1e van Maart 2011.

Is er een manier om dit te doen dus dat de formaten van de europese date?

InformationsquelleAutor 109221793 | 2011-05-09

 

5 Replies
  1. 33
    var dt = DateTime.ParseExact(t.Date, "MM/dd/yyyy", CultureInfo.InvariantCulture);

    DateTime zelf heeft geen opmaak, het is alleen wanneer je het om te zetten of uit een tekenreeks die de indeling is relevant.

    Om uw date met Amerikaanse indeling, passeert u het formaat van de ToString methode

    string americanFormat = dt.ToString("MM/dd/yyyy");
  2. 18

    Als u het parseren van de datum van een bestand dat is met name een ONS opgemaakte bestand vervolgens eenvoudig de AMERIKAANSE cultuur is de informatie in de parse-functie als volgt;

    var usCulture = "en-US";
    var dateValue = DateTime.Parse(dateString, new CultureInfo(usCulture, false));

    Deze manier kun je eenvoudig wisselen van de cultuur string per regio nodig is voor het parseren. Ook hoef je niet eens meer onderzoek te doen naar de specifieke datetime formaat nuances voor elke cultuur .Netto zal verzorgen dit voor u ontworpen.

    • Dit geeft geen antwoord op de vraag, op alle. OP was de vraag hoe het parseren van een datum ONS naar een van de EU, dan moet je gewoon verteld hem hoe het parseren van ONS een date met een AMERIKAANSE datum.
    • Brian Scott heeft precies gedaan wat het OP gevraagd. De datum opgeslagen in werk is een interpretatie van dateString als een Amerikaanse datum – maar als nu het gestructureerd, zodat u kunt vragen voor werk.Maand. Als u het wilt weergeven in de Europese stijl, ga je gang en zetten het terug in een tekenreeks zoals weergegeven in de geaccepteerde antwoord. Dit antwoord is erg handig omdat het laat zien parseren met een andere CultureInfo-in plaats van hardcoding de indeling van de datum.
  3. 7

    Gebruik Datum en tijd.ParseExact of Datum en tijd.TryParseExact bij het parseren, en het opgeven van een tekenreeks als u een indeling met ToString ook.

    Er rekening mee dat er niet zoiets als “een Amerikaanse datum” nadat deze is gecontroleerd. De DateTime waarde heeft geen concept van opmaak.

    Het klinkt alsof je het niet echt geïnteresseerd in de Parse deel zo veel als de opmaak van een onderdeel, bijvoorbeeld

    string formatted = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

    … maar ik zou adviseren dat u zowel de parsing en opmaak expliciet.

    Als u verschillende bestandsformaten, moet u een iets ander format strings bij het lezen van elk bestand. Hoe je dan formaat de gegevens is een aparte beslissing.

  4. 0
    string formatteddate=DateTime.Now.ToString("d") //output: 11/8/2012    
    string formatteddate=DateTime.Now.ToString("D") //output: Monday, November 08, 2012    
    string formatteddate=DateTime.Now.ToString("f") //output: Monday, November 08, 2012 3:39 PM    
    string formatteddate=DateTime.Now.ToString("g") //output: Monday, November 08, 2012 3:39:46 PM    
    string formatteddate=DateTime.Now.ToString("d") //output: 11/8/2012 3:39 PM

    Meer datum-tijd formaat in asp.net wordt hier gegeven.

    http://dateformat.blogspot.in/2012/09/date-time-format-in-c-aspnet.html

    • De vragen over het parseren datetime, niet over de opmaak van de output. Probleem kan worden opgelost met behulp van een overbelasting van DateTime.Parse() methode. Geef juiste cultuur info: dateValue = DateTime.Parse(dateString, new CultureInfo("fr-FR", false));
    • Uw 1 en 5 zijn hetzelfde, maar verschillende Uitgangen, string formatteddate=DateTime.Now.ToString("d"). Hoe is dat mogelijk?

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *