Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
1. Pomocou `datetime.now`:
Toto je najjednoduchší prístup. `DateTime.Now` Vráti objekt` DateTime`, ktorý predstavuje aktuálny dátum a čas na * serveri *, kde je spustená aplikácia ASP.NET.
`` csharp
DateTime servertime =dateTime.Now;
String FormáttedTime =Servertime.ToString ("Yyyy-Mm-dd HH:mm:ss"); // Príklad formátu
// výstup čas
Response.Write ("čas servera:" + formáttedTime);
`` `
Táto metóda je vo všeobecnosti dostatočná pre väčšinu scenárov. Majte však na pamäti, že sa spolieha na systémové hodiny servera, ktoré nemusia byť dokonale synchronizované so serverom Time.
2. Používanie `datetimeoffset.now`:
Ak potrebujete zodpovedať za časové pásma, uprednostňuje sa `DateTimeOffset.now`. Poskytuje dátum aj čas aj ofset z UTC. To je rozhodujúce pre aplikácie zaobchádzanie s údajmi z viacerých časových pásiem.
`` csharp
DateTimeOffset servertimeOffset =dateTimeOffset.now;
String FormáttedTime =ServertimeOffset.ToString ("Yyyy-Mm-dd HH:mm:SS ZZZ"); // Zahŕňa kompenzáciu časového pásma
// výstup čas
Response.Write ("čas servera (s offset):" + formáttedTime);
`` `
3. Pomocou špecializovanej časovej služby (pre vyššiu presnosť):
V prípade aplikácií, ktoré si vyžadujú extrémne vysokú presnosť, zvážte použitie klientskej knižnice Network Time Protocol (NTP) na synchronizáciu hodín servera so spoľahlivým časovým serverom. To je menej bežné pre jednoduché webové aplikácie, ale je nevyhnutné v scenároch požadujúcich presnú synchronizáciu času. Spravidla by ste do svojej aplikácie integrovali knižnicu NTP a potom by ste po synchronizácii použili `datetime.now` alebo` DateTimeOffset.now`.
4. V jadre ASP.NET (iný prístup):
V jadre ASP.NET môžete použiť injekciu závislosti na získanie prístupu k „IhttpContextacCorssor“, aby ste získali čas žiadosti (čo je v podstate čas servera).
`` csharp
// vo vašom ovládači alebo službe
verejná trieda MyController:Controller
{
súkromné čítanie Readonly IhttpContextAccessor _httpContextAcCorsor;
public myController (IhttpContextAccessor HttpContextAccessor)
{
_httpcontextAcCorssor =httpContextAcCorsor;
}
verejný index iActionResult ()
{
DateTime servertime =_httpContextAcCorsor.httpContext? DateTime.Now;
// Vyššie uvedený riadok je robustný pre situácie, keď HTTPContext nie je k dispozícii (napr. V službách na pozadí)
String FormáttedTime =Servertime.ToString ("Yyyy-Mm-dd HH:mm:ss");
ViewBag.Servertime =FormattedTime;
return pohľad ();
}
}
`` `
Nezabudnite zaregistrovať `IhttpContextAcCorssor` vo vašom` startup.cs` (alebo `program.cs` v .NET 6 a neskôr):
`` csharp
// v Stavetup.cs (staršie verzie) alebo program.cs (.NET 6 a neskôr):
Services.AddhttpContextAcCorsor ();
`` `
Výber správnej metódy závisí od konkrétnych požiadaviek vašej aplikácie. Pre väčšinu jednoduchých webových aplikácií bude stačiť `datetime.now` alebo` DateTimeOffset.now`. Pre náročnejšie aplikácie, ktoré si vyžadujú vysokú presnosť alebo spracovanie časového pásma, zvážte použitie knižnice NTP alebo `DateTimeOffset.now`. Pre ASP.Net Core využite `IhttpcontextAcCorsor`. Nezabudnite vždy formátovať dátum a čas primerane na zobrazenie používateľovi, pričom v prípade potreby zohľadňujú jeho preferované časové pásmo.