TimeUtils_QCloud.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace COSXML.Utils
  5. {
  6. public sealed class TimeUtils_QCloud
  7. {
  8. // utc start time
  9. public static readonly DateTime UTC_START_TIME = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
  10. public static long GetCurrentTime(TimeUnit timeUnit)
  11. {
  12. TimeSpan timeSpan = DateTime.UtcNow - UTC_START_TIME;
  13. long result = -1L;
  14. switch (timeUnit)
  15. {
  16. case TimeUnit.Days:
  17. result = (long)timeSpan.TotalDays;
  18. break;
  19. case TimeUnit.Hours:
  20. result = (long)timeSpan.TotalHours;
  21. break;
  22. case TimeUnit.Minutes:
  23. result = (long)timeSpan.TotalMinutes;
  24. break;
  25. case TimeUnit.Seconds:
  26. result = (long)timeSpan.TotalSeconds;
  27. break;
  28. case TimeUnit.Milliseconds:
  29. result = (long)timeSpan.TotalMilliseconds;
  30. break;
  31. }
  32. return result;
  33. }
  34. public static string GetFormatTime(string format, long time, TimeUnit timeUnit)
  35. {
  36. DateTime end = DateTime.MinValue;
  37. DateTime start = UTC_START_TIME;
  38. switch (timeUnit)
  39. {
  40. case TimeUnit.Days:
  41. end = start.AddDays(time);
  42. break;
  43. case TimeUnit.Hours:
  44. end = start.AddHours(time);
  45. break;
  46. case TimeUnit.Minutes:
  47. end = start.AddMinutes(time);
  48. break;
  49. case TimeUnit.Seconds:
  50. end = start.AddSeconds(time);
  51. break;
  52. case TimeUnit.Milliseconds:
  53. end = start.AddMilliseconds(time);
  54. break;
  55. }
  56. end = TimeZone.CurrentTimeZone.ToLocalTime(end);
  57. return end.ToString(format);
  58. }
  59. }
  60. public enum TimeUnit
  61. {
  62. Milliseconds = 0,
  63. Seconds,
  64. Minutes,
  65. Hours,
  66. Days,
  67. }
  68. }