This is a simple tool to integrate a date conversion library based on Noda Time with net core dependency injection.
The service will search for a configuration parameter named defaultTimeZoneId
to know which time zone id will be using
for the conversions.
Just run
Install-Package Lagersoft.UtcLocalConversion.DependencyInjection -Version 1.0.0
To use, simply call
DateTimeModule.AddUtcLocalConversion()
Example Startup.cs
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services
.AddMvc()
.AddUtcLocalConversion();
}
Example appsettings.json
{
"DefaultTimeZoneId": "America/Guatemala"
}
For now, it has three main usages.
Used to make conversions between some local and UTC.
dateTimeLocalizer = new DateTimeLocalizer("America/Guatemala");
Is build on top of DateTimeLocalizer
, but is made to take advantage of the Dependency Injection.
This class should be injected, with the configuration like in the Examples, and allows to convert between a particular TimeZoneId (defined in the configuration) and UTC.
public SomeServiceConstructor(DateTimeLocalizerService dateTimeLocalizerService)
{
_dateTimeLocalizerService = dateTimeLocalizerService;
}
public void SomeFunction()
{
var someLocalDateTime = _dateTimeLocalizerService.UtcToLocalDateTime(DateTime.UtcNow);
}
As DateTimeLocalizerService
, it needs the Dependency Injection configuration.
The class allows to get some common date functions.
public SomeServiceConstructor(DateTimeProviderService dateTimeProviderService)
{
_dateTimeProviderService = dateTimeProviderService;
}
public void SomeFunction()
{
var localStartOfDayInUtcForDbReport = _dateTimeProviderService.TodayLocalInUtc();
}