using System.Collections.ObjectModel; using Nop.Core.Domain.Customers; namespace Nop.Services.Helpers; /// /// Represents a datetime helper /// public partial interface IDateTimeHelper { /// /// Returns a sorted collection of all the time zones /// /// A read-only collection of System.TimeZoneInfo objects. ReadOnlyCollection GetSystemTimeZones(); /// /// Converts the date and time to current user date and time /// /// The date and time (represents local system time or UTC time) to convert. /// /// A task that represents the asynchronous operation /// The task result contains a DateTime value that represents time that corresponds to the dateTime parameter in customer time zone. /// Task ConvertToUserTimeAsync(DateTime dt); /// /// Converts the date and time to current user date and time /// /// The date and time (represents local system time or UTC time) to convert. /// The source datetimekind /// /// A task that represents the asynchronous operation /// The task result contains a DateTime value that represents time that corresponds to the dateTime parameter in customer time zone. /// Task ConvertToUserTimeAsync(DateTime dt, DateTimeKind sourceDateTimeKind); /// /// Converts the date and time to current user date and time /// /// The date and time to convert. /// The time zone of dateTime. /// The time zone to convert dateTime to. /// A DateTime value that represents time that corresponds to the dateTime parameter in customer time zone. DateTime ConvertToUserTime(DateTime dt, TimeZoneInfo sourceTimeZone, TimeZoneInfo destinationTimeZone); /// /// Converts the date and time to Coordinated Universal Time (UTC) /// /// The date and time (represents local system time or UTC time) to convert. /// A DateTime value that represents the Coordinated Universal Time (UTC) that corresponds to the dateTime parameter. The DateTime value's Kind property is always set to DateTimeKind.Utc. DateTime ConvertToUtcTime(DateTime dt); /// /// Converts the date and time to Coordinated Universal Time (UTC) /// /// The date and time (represents local system time or UTC time) to convert. /// The source datetimekind /// A DateTime value that represents the Coordinated Universal Time (UTC) that corresponds to the dateTime parameter. The DateTime value's Kind property is always set to DateTimeKind.Utc. DateTime ConvertToUtcTime(DateTime dt, DateTimeKind sourceDateTimeKind); /// /// Converts the date and time to Coordinated Universal Time (UTC) /// /// The date and time to convert. /// The time zone of dateTime. /// A DateTime value that represents the Coordinated Universal Time (UTC) that corresponds to the dateTime parameter. The DateTime value's Kind property is always set to DateTimeKind.Utc. DateTime ConvertToUtcTime(DateTime dt, TimeZoneInfo sourceTimeZone); /// /// Gets a customer time zone /// /// Customer /// /// A task that represents the asynchronous operation /// The task result contains the customer time zone; if customer is null, then default store time zone /// Task GetCustomerTimeZoneAsync(Customer customer); /// /// Gets the current user time zone /// /// /// A task that represents the asynchronous operation /// The task result contains the current user time zone /// Task GetCurrentTimeZoneAsync(); /// /// Gets or sets a default store time zone /// TimeZoneInfo DefaultStoreTimeZone { get; } }