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ď č. 1V 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");