LocalClockProvider.cs 826 B

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. namespace Abp.Timing
  3. {
  4. /// <summary>
  5. /// Implements <see cref="IClockProvider"/> to work with local times.
  6. /// </summary>
  7. public class LocalClockProvider : IClockProvider
  8. {
  9. public DateTime Now => DateTime.Now;
  10. public DateTimeKind Kind => DateTimeKind.Local;
  11. public bool SupportsMultipleTimezone => false;
  12. public DateTime Normalize(DateTime dateTime)
  13. {
  14. if (dateTime.Kind == DateTimeKind.Unspecified)
  15. {
  16. return DateTime.SpecifyKind(dateTime, DateTimeKind.Local);
  17. }
  18. if (dateTime.Kind == DateTimeKind.Utc)
  19. {
  20. return dateTime.ToLocalTime();
  21. }
  22. return dateTime;
  23. }
  24. internal LocalClockProvider()
  25. {
  26. }
  27. }
  28. }