2016-06-10 12 views
-2

I unten Zeichenfolge Datumstyp in C# konvertieren möchten,Convert String to date C#

"Q2(JUN)-2016" 
    to 
Q2-2016 (which is of date type) 

Das Ergebnis sollte der Datumstyp sein und es sollte Quartal2 zeigen.

+0

Was meinst du mit „der Datumstyp“? Es gibt keinen Typ in der .NET BCL, der "viertel 2 2016" entsprechen würde, soweit ich weiß. (Solch ein Typ würde sowieso nicht "Datum" genannt werden, da ein Viertel kein Datum ist ...) –

+0

Ich meine ein Datum, das als Viertel dargestellt werden kann. – Prasu

+0

Aber ein Viertel * ist kein * Datum. Das ist wie "Der Bereich 1-10 ist eine ganze Zahl". Und welchen Typ meinst du? Oder fragst du, ob * ein solcher Typ in .NET * ist? (Es gibt nicht, soweit ich weiß, aber Sie könnten Ihre eigenen erstellen.) –

Antwort

1

Sie es zuerst DateTime analysieren konnten und dann eine einfache Berechnung verwenden, um die Viertel zu erhalten:

string quarterInfo = "Q2(JUN) - 2016"; 
DateTime monthDt; // will be parsed to: 06/01/2016 00:00:00 
if (DateTime.TryParseExact(
    quarterInfo.Substring(quarterInfo.IndexOf('(') + 1), 
    "MMM) - yyyy", 
    DateTimeFormatInfo.InvariantInfo, 
    DateTimeStyles.None, 
    out monthDt)) 
{ 
    int year = monthDt.Year; 
    int quarter = (monthDt.Month + 2)/3; 
    Console.WriteLine("Q{0}-{1}", quarter, year); // Q2-2016 
}