/ / Zachovanie formátu MM / DD / RRRR v reťazci - c #

Zadržanie formátu MM / DD / RRRR v retazci String - c #

Potrebujem písať dátum vo formáte MM / DD / RRRR. Z ovládača výberu dátumu. Snažím sa priradiť ju premennej DateTime. Pred zápisom do súboru ho priradíte k reťazcu. Vidím hodnotu uloženú v premennej String je vo formáte DD / MM / RRRR.

Nižšie je priradenie

DateTime startTime, endTime;
string startTimeDate = "";
startTime = Convert.ToDateTime(dpStartTime.Value.ToString("MM/dd/yyyy HH:mm"));
endTime = Convert.ToDateTime(dpEndTime.Value.ToString("MM/dd/yyyy HH:mm"));
startTimeDate = startTime.ToString("MM/dd/yyyy HH:mm");
startTimeDate = startTimeDate.Replace("-", "/");

Pozorujem startTimeDate je uložený len ako DD / MM / RRRR. startTime sa ukladá len vo formáte MM / DD / RRRR. Dajte mi prosím vedieť, či existuje iný prístup na správne priradenie / konverziu hodnôt dátumu.

Vopred ďakujem

odpovede:

5 pre odpoveď č. 1

edit:

Stratíte pôvodný dátum vo vašom Convert.DateTime() konverzie, musíte tu použiť aj formátovací reťazec, napr. použitím DateTime.ParseExact :

startTime = DateTime.ParseExact(dpStartTime.Value.ToString("MM/dd/yyyy HH:mm"),
"MM/dd/yyyy HH:mm",
CultureInfo.InvariantCulture);

2 pre odpoveď č. 2

Namiesto použitia Convert.ToDateTime(), skúste použiť DateTime.ParseExact(string s, string format, IFormatProvider provider) keď môžete zabezpečiť formát dátumu a chcete ignorovať nastavenia systému. Možno nájsť odkaz MSDN pre metódu DateTime.ParseExact () tu


0 pre odpoveď č. 3

Konvertujete DateTime na reťazec, potom ste "znovu previesť na. \ t DateTime použitím Convert trieda. Nezachovávate tu formát DateTime je formát agnostik. A predvolené ToString konverzia (používaná debuggerom) je v príčinách MM / DD / RRRR.


0 pre odpoveď č. 4

Zvyčajne používam String.Format, napr

String.Format("{0:d/M/yyyy HH:mm:ss}", dpStartTime.Value);

Formátovať dáta ako reťazce.