/ / Výmena formátov pre dátum v reťazcoch - c #, .net, string, datetime

Výmena formátov pre dátum v reťazcoch - c #, .net, string, datetime

S týmto formátom mám dátum v reťazci "2/11/2013 19:14:00" (MM / DD / RRRR HH: MM: SS) formát a chcem ho previesť do podobného reťazca 11 February 2013 19:14

Ako to môžem urobiť najúčinnejším spôsobom?

odpovede:

6 pre odpoveď č. 1

Ak tvoj 2/11/2013 19:14:00 hodnota je a DateTime, len naformátujte svoje DateTime s .ToString() metóda Páči sa mi to;

dateTimeValue.ToString("dd MMMM yyyy HH:mm", CultureInfo.InvariantCulture);

Ak tvoj 2/11/2013 19:14:00 hodnota je string, nie a DateTime, môžete ho analyzovať DateTime najprv a potom ho môžete formátovať;

string s = "2/11/2013 19:14:00";
DateTime dt;
if(DateTime.TryParseExact(s, "M/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture,
DateTimeStyles.None,
out dt))
{
Console.WriteLine(dt.ToString("dd MMMM yyyy HH:mm",
CultureInfo.InvariantCulture));
}

Tu a demonstration.


1 pre odpoveď č. 2

Najprv konvertujte svoj string na a DateTime:

DateTime dt = DateTime.ParseExact(oldString, "M/dd/yyyy HH:mm:ss",
CultureInfo.InvariantCulture);

potom to skonvertujte DateTime na a string:

string newString = dt.ToString("dd MMMM yyyy HH:mm",
CultureInfo.InvariantCulture);

0 pre odpoveď č. 3

Ak je dátum vstupu skutočne a string, najjednoduchšia vec je previesť ho na DateTime najprv:

DateTime d = DateTime.ParseExact(oldDateString, "M/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

Potom ho preveďte späť na string, as Soner už navrhli:

string newDateString = d.ToString("dd MMMM yyyy HH:mm", CultureInfo.InvariantCulture);