Witam. Potrzebuję pomocy w zrozumieniu, jak działa konwertowanie dat w ASP .Net CORE. Dla przykładu Klient pochodzi z Polski, a serwer stoi w strefie czasowej -2h względem Polski.
Teraz klient w formularzu klika dodaj subskrypcję i przesyła dane do serwera. U klienta jest teraz 10:00
, a data utworzenia subskrypcji zapisuje się na serwerze o 08:00
DateTime now = DateTime.Now;
Subscription subscription = new Subscription()
{
Id = Guid.NewGuid(),
ApplicationUserId = currentUser.Id,
IsDeleted = false,
CreatingTime = now,
AvailableBuildingsToCreate = foundedSubscriptionTemplate.AvailableBuildingsToCreate,
SubscriptionTemplateId = input.SubscriptionTemplateId,
BeginSubscriptionTime = now,
EndSubscriptionTime = now,
DisableSubscriptionTimeIfNotPayed = now.AddDays(0).AddMinutes(10),
TrialExpireTime = null,
SubscriptionName = input.SubscriptionName,
};
Użytkownik opłacił subskrypcję i przekierowuje go do jego subskrypcji, pobieranej:
var currentUser = await _userManager.GetUserAsync(User);
if (currentUser == null)
return new List<SubscriptionDto>();
var now = DateTime.Now;
var activeSubscriptions = await _applicationDbContext.Subscriptions
.Where(x => !x.IsDeleted)
.Where(x => x.ApplicationUserId == currentUser.Id)
.Where(x => x.BeginSubscriptionTime < now)
.Where(x =>
(x.BeginSubscriptionTime < now && (!x.DisableSubscriptionTimeIfNotPayed.HasValue || x.DisableSubscriptionTimeIfNotPayed > now) && (!x.EndSubscriptionTime.HasValue || x.EndSubscriptionTime > now))
)
.OrderBy(x => x.CreatingTime)
.ToListAsync();
var subscriptionDtos = activeSubscriptions.Select(x => x.ToDto()).ToList();
return subscriptionDtos;
Niestety w widoku użytkownik widzi datę utworzenia subskrypcji na godzinę 08:00
. Jest możliwość sprawienia, aby daty wysyłane od klienta do serwera
i od serwera do klienta
automatycznie konwertowały się na odpowiednią strefę czasową?
Nie wiem, czy dobrze to wyjaśniłem. W razie co powiedzcie, jakich informacji potrzeba