/ / Ako previesť čas do formátu 24Hr z DateTime.Now - c #

Ako previesť čas do formátu 24Hr od DateTime.Now - c #

Tu je môj kód, došlo k chybe, pokiaľ ide o posledný riadok

"Nemožno implicitne previesť typ" reťazec "na" System.TimeSpan "

//Getting the current date and time
DateTime dateTime = DateTime.Now;
//Date
var date = dateTime.Date;
//Time
var time = dateTime.TimeOfDay;
time = time.ToString("HH:mm");

odpovede:

3 pre odpoveď č. 1

V treťom riadku kódu ste vyhlásili premennú nazvanú čas (var time = dateTime.TimeOfDay;) pomocou var.

Var. Toto kľúčové slovo odkazuje na typ implicitným spôsobom. Povoľuje akýkoľvek typ. Druhý typ je určený prekladačom C #. Nemá to žiaden trest.

Takže dátový typ premennej doby je TimeSpan, pretože TimeOfDay() Metóda vráti a TimeSpan a potom v ďalšom riadku ste sa pokúsili priradiť čas hodnotu reťazca, ktorá v jazyku bezpečné pre typ, napríklad C #, vráti chybu. Mali by ste jednoducho deklarovať ďalšiu hodnotu:

//Getting the current date and time
DateTime dateTime = DateTime.Now;
//Date
var date = dateTime.Date;
//Time
var time = dateTime.TimeOfDay;
var timeOfDayStr = time.ToString("HH:mm");

Ak chcete získať čas vo formáte 24Hour, mali by ste to urobiť:

var TimeIn24HrFormat = DateTime.Now.ToString("HH:mm");

1 pre odpoveď č. 2

Za hodinu a minútu môžete urobiť jednoducho:

String.Format("{0:HH:mm}", DateTime.Now)

podobne: Ak chcete plný formát:

String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now)

1 pre odpoveď č. 3

Vaša časová premenná je typu Timespan, ale vysa pokúšajú priradiť reťazec. C # je staticky napísaný jazyk, takže premenné nemôžu počas behu zmeniť typ. Jednoducho vytvorte novú premennú pre reťazec času:

var time = dateTime.TimeOfDay;
var time24hr = time.ToString("HH:mm");