diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs index 9dffa5bc86..5088c08293 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs @@ -54,7 +54,7 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp { if(x is string s && DateTime.TryParse(s, out var dt)) { - return Clock.ConvertTo(dt).ToString("O"); + return Clock.ConvertToUserTime(dt).ToString("O"); } return string.Empty; @@ -65,7 +65,7 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp { if(x is DateTime dt && dt != default) { - return Clock.ConvertTo(dt).ToString("O"); + return Clock.ConvertToUserTime(dt).ToString("O"); } return string.Empty; @@ -76,7 +76,7 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp { if(x is DateTime dt && dt != default) { - return Clock.ConvertTo(dt).ToString("O"); + return Clock.ConvertToUserTime(dt).ToString("O"); } return string.Empty; } @@ -86,7 +86,7 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp { if(x is DateTimeOffset dto && dto != default) { - return Clock.ConvertTo(dto).DateTime.ToString("O"); + return Clock.ConvertToUserTime(dto).DateTime.ToString("O"); } return string.Empty; @@ -97,7 +97,7 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp { if(x is DateTimeOffset dto && dto != default) { - return Clock.ConvertTo(dto).DateTime.ToString("O"); + return Clock.ConvertToUserTime(dto).DateTime.ToString("O"); } return string.Empty; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs index dc478952e5..5370a9a7de 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs @@ -60,14 +60,14 @@ public class AbpDatePickerTagHelperService : AbpDatePickerBaseTagHelperService /// Converts given UTC to user's time zone. /// - /// DateTime to be normalized. + /// DateTime to be normalized. /// Converted DateTime - public virtual DateTime ConvertTo(DateTime dateTime) + public virtual DateTime ConvertToUserTime(DateTime utcDateTime) { if (!SupportsMultipleTimezone || - dateTime.Kind != DateTimeKind.Utc || + utcDateTime.Kind != DateTimeKind.Utc || CurrentTimezoneProvider.TimeZone.IsNullOrWhiteSpace()) { - return dateTime; + return utcDateTime; } var timezoneInfo = TimezoneProvider.GetTimeZoneInfo(CurrentTimezoneProvider.TimeZone); - return TimeZoneInfo.ConvertTime(dateTime, timezoneInfo); + return TimeZoneInfo.ConvertTime(utcDateTime, timezoneInfo); } /// @@ -74,7 +74,7 @@ public class Clock : IClock, ITransientDependency /// /// DateTimeOffset to be normalized. /// Converted DateTimeOffset - public virtual DateTimeOffset ConvertTo(DateTimeOffset dateTimeOffset) + public virtual DateTimeOffset ConvertToUserTime(DateTimeOffset dateTimeOffset) { if (!SupportsMultipleTimezone || CurrentTimezoneProvider.TimeZone.IsNullOrWhiteSpace()) @@ -91,7 +91,7 @@ public class Clock : IClock, ITransientDependency /// /// DateTime to be normalized. /// Converted DateTime - public DateTime ConvertFrom(DateTime dateTime) + public DateTime ConvertToUtc(DateTime dateTime) { if (!SupportsMultipleTimezone || dateTime.Kind == DateTimeKind.Utc || diff --git a/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/IClock.cs b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/IClock.cs index 0c757ab93c..7bf83dc7e0 100644 --- a/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/IClock.cs +++ b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/IClock.cs @@ -29,21 +29,21 @@ public interface IClock /// /// Converts given UTC to user's time zone. /// - /// DateTime to be normalized. + /// DateTime to be normalized. /// Converted DateTime - DateTime ConvertTo(DateTime dateTime); + DateTime ConvertToUserTime(DateTime utcDateTime); /// /// Converts given to user's time zone. /// /// DateTimeOffset to be normalized. /// Converted DateTimeOffset - DateTimeOffset ConvertTo(DateTimeOffset dateTimeOffset); + DateTimeOffset ConvertToUserTime(DateTimeOffset dateTimeOffset); /// - /// Converts given user's to UTC or not. + /// Converts given to UTC if the given time is not UTC and the current clock provider supports multiple time zones. /// /// DateTime to be normalized. /// Converted DateTime - DateTime ConvertFrom(DateTime dateTime); + DateTime ConvertToUtc(DateTime dateTime); } diff --git a/framework/test/Volo.Abp.Timing.Tests/Volo/Abp/Timing/Clock_Default_Tests.cs b/framework/test/Volo.Abp.Timing.Tests/Volo/Abp/Timing/Clock_Default_Tests.cs index 4cd8c9b8c6..1904518180 100644 --- a/framework/test/Volo.Abp.Timing.Tests/Volo/Abp/Timing/Clock_Default_Tests.cs +++ b/framework/test/Volo.Abp.Timing.Tests/Volo/Abp/Timing/Clock_Default_Tests.cs @@ -22,7 +22,7 @@ public class Clock_Default_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Utc); - var convertedDateTime = _clock.ConvertTo(dateTime); + var convertedDateTime = _clock.ConvertToUserTime(dateTime); convertedDateTime.Kind.ShouldBe(DateTimeKind.Utc); convertedDateTime.ToString("O").ShouldBe("2025-03-01T05:30:00.0000000Z"); } @@ -30,7 +30,7 @@ public class Clock_Default_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Local); - var convertedDateTime = _clock.ConvertTo(dateTime); + var convertedDateTime = _clock.ConvertToUserTime(dateTime); convertedDateTime.Kind.ShouldBe(DateTimeKind.Local); convertedDateTime.ToString("O").ShouldBe(dateTime.ToString("O")); } @@ -38,7 +38,7 @@ public class Clock_Default_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change(null)) { var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Local); - var convertedDateTime = _clock.ConvertTo(dateTime); + var convertedDateTime = _clock.ConvertToUserTime(dateTime); convertedDateTime.Kind.ShouldBe(DateTimeKind.Local); convertedDateTime.ToString("O").ShouldBe(dateTime.ToString("O")); } @@ -50,7 +50,7 @@ public class Clock_Default_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Utc), TimeSpan.Zero); - var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset); + var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset); convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.Zero); convertedDateTimeOffset.ShouldBe(dateTimeOffset); } @@ -58,7 +58,7 @@ public class Clock_Default_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified), TimeSpan.Zero); - var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset); + var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset); convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.Zero); convertedDateTimeOffset.ShouldBe(dateTimeOffset); } @@ -66,7 +66,7 @@ public class Clock_Default_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified), TimeSpan.FromHours(3)); - var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset); + var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset); convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.FromHours(3)); convertedDateTimeOffset.ShouldBe(dateTimeOffset); } @@ -74,7 +74,7 @@ public class Clock_Default_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified), TimeSpan.FromHours(8)); - var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset); + var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset); convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.FromHours(8)); convertedDateTimeOffset.ShouldBe(dateTimeOffset); } @@ -86,7 +86,7 @@ public class Clock_Default_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified); - var convertedDateTime = _clock.ConvertFrom(dateTime); + var convertedDateTime = _clock.ConvertToUtc(dateTime); convertedDateTime.Kind.ShouldBe(DateTimeKind.Unspecified); convertedDateTime.ShouldBe(dateTime); } @@ -94,7 +94,7 @@ public class Clock_Default_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Local); - var convertedDateTime = _clock.ConvertFrom(dateTime); + var convertedDateTime = _clock.ConvertToUtc(dateTime); convertedDateTime.Kind.ShouldBe(DateTimeKind.Local); convertedDateTime.ShouldBe(dateTime); } @@ -102,7 +102,7 @@ public class Clock_Default_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Utc); - var convertedDateTime = _clock.ConvertFrom(dateTime); + var convertedDateTime = _clock.ConvertToUtc(dateTime); convertedDateTime.Kind.ShouldBe(DateTimeKind.Utc); convertedDateTime.ShouldBe(dateTime); } diff --git a/framework/test/Volo.Abp.Timing.Tests/Volo/Abp/Timing/Clock_Utc_Tests.cs b/framework/test/Volo.Abp.Timing.Tests/Volo/Abp/Timing/Clock_Utc_Tests.cs index 8f707fb901..4ecbd0d4c6 100644 --- a/framework/test/Volo.Abp.Timing.Tests/Volo/Abp/Timing/Clock_Utc_Tests.cs +++ b/framework/test/Volo.Abp.Timing.Tests/Volo/Abp/Timing/Clock_Utc_Tests.cs @@ -32,7 +32,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Utc); - var convertedDateTime = _clock.ConvertTo(dateTime); + var convertedDateTime = _clock.ConvertToUserTime(dateTime); convertedDateTime.Kind.ShouldBe(DateTimeKind.Unspecified); convertedDateTime.ToString("O").ShouldBe("2025-03-01T08:30:00.0000000"); //Without Z } @@ -41,7 +41,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest { // ConvertTo will not convert the DateTimeKind.Local var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Local); - var convertedDateTime = _clock.ConvertTo(dateTime); + var convertedDateTime = _clock.ConvertToUserTime(dateTime); convertedDateTime.Kind.ShouldBe(DateTimeKind.Local); convertedDateTime.ToString("O").ShouldBe(dateTime.ToString("O")); } @@ -50,7 +50,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest { // ConvertTo will not convert if the timezone is not set var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Local); - var convertedDateTime = _clock.ConvertTo(dateTime); + var convertedDateTime = _clock.ConvertToUserTime(dateTime); convertedDateTime.Kind.ShouldBe(DateTimeKind.Local); convertedDateTime.ToString("O").ShouldBe(dateTime.ToString("O")); } @@ -62,7 +62,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Utc), TimeSpan.Zero); - var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset); + var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset); convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.FromHours(3)); convertedDateTimeOffset.ToString("O").ShouldBe("2025-03-01T08:30:00.0000000+03:00"); } @@ -70,7 +70,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified), TimeSpan.Zero); - var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset); + var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset); convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.FromHours(3)); convertedDateTimeOffset.ToString("O").ShouldBe("2025-03-01T08:30:00.0000000+03:00"); } @@ -78,7 +78,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified), TimeSpan.FromHours(3)); - var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset); + var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset); convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.FromHours(3)); convertedDateTimeOffset.ShouldBe(dateTimeOffset); } @@ -86,7 +86,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified), TimeSpan.FromHours(8)); - var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset); + var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset); convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.FromHours(3)); convertedDateTimeOffset.DateTime.ShouldBe(new DateTime(2025, 3, 1, 0, 30, 0, DateTimeKind.Unspecified)); } @@ -95,7 +95,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest { // ConvertTo will not convert if the timezone is not set var dateTimeOffset = new DateTimeOffset(new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified), TimeSpan.FromHours(8)); - var convertedDateTimeOffset = _clock.ConvertTo(dateTimeOffset); + var convertedDateTimeOffset = _clock.ConvertToUserTime(dateTimeOffset); convertedDateTimeOffset.Offset.ShouldBe(TimeSpan.FromHours(8)); convertedDateTimeOffset.ShouldBe(dateTimeOffset); } @@ -107,7 +107,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Unspecified); - var convertedDateTime = _clock.ConvertFrom(dateTime); + var convertedDateTime = _clock.ConvertToUtc(dateTime); convertedDateTime.Kind.ShouldBe(DateTimeKind.Utc); convertedDateTime.ToString("O").ShouldBe("2025-03-01T02:30:00.0000000Z"); } @@ -115,7 +115,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Local); - var convertedDateTime = _clock.ConvertFrom(dateTime); + var convertedDateTime = _clock.ConvertToUtc(dateTime); convertedDateTime.Kind.ShouldBe(DateTimeKind.Utc); convertedDateTime.ToString("O").ShouldBe("2025-03-01T02:30:00.0000000Z"); } @@ -123,7 +123,7 @@ public class Clock_Utc_Tests : AbpIntegratedTest using(_currentTimezoneProvider.Change("Europe/Istanbul")) { var dateTime = new DateTime(2025, 3, 1, 5, 30, 0, DateTimeKind.Utc); - var convertedDateTime = _clock.ConvertFrom(dateTime); + var convertedDateTime = _clock.ConvertToUtc(dateTime); convertedDateTime.Kind.ShouldBe(DateTimeKind.Utc); convertedDateTime.ToString("O").ShouldBe("2025-03-01T05:30:00.0000000Z"); }