LauncherTimeUtil.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System;
  2. using System.Globalization;
  3. namespace GFGGame
  4. {
  5. public class LauncherTimeUtil
  6. {
  7. private static DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
  8. private static readonly string[] Formats =
  9. {
  10. "HH:mm",
  11. "'['yyyy']['M']['dd']'",
  12. "'['yyyy']['MM']['d']'",
  13. "'['yyyy']['M']['d']'",
  14. "'['yyyy']['MM']['dd']'",
  15. "'['yyyy']['MM']['dd']['HH:mm']'",
  16. "'['yyyy']['MM']['dd']['H:mm']'",
  17. "'['yyyy']['M']['dd']['HH:mm']'",
  18. "'['yyyy']['M']['dd']['H:mm']'",
  19. "'['yyyy']['MM']['d']['HH:mm']'",
  20. "'['yyyy']['MM']['d']['H:mm']'",
  21. "'['yyyy']['M']['d']['HH:mm']'",
  22. "'['yyyy']['M']['d']['H:mm']'",
  23. "'['yyyy']['MM']['dd']['HH:mm:ss']'",
  24. "'['yyyy']['M']['dd']['HH:mm:ss']'",
  25. "'['yyyy']['MM']['d']['HH:mm:ss']'",
  26. "'['yyyy']['M']['d']['HH:mm:ss']'",
  27. };
  28. private static DateTime GetDateTime(string timeStr)
  29. {
  30. if (DateTime.TryParseExact(timeStr, Formats, null, DateTimeStyles.None, out var result))
  31. {
  32. return result;
  33. }
  34. throw new FormatException("Invalid date format");
  35. }
  36. //转换成时间戳,单位毫秒
  37. public static long GetTimestamp(string timeStr)
  38. {
  39. var dateTime = GetDateTime(timeStr);
  40. return Transition(dateTime);
  41. }
  42. // 获取当前时间的时间戳,单位毫秒
  43. public static long GetCurrentTimestamp()
  44. {
  45. DateTime now = DateTime.UtcNow;
  46. return Transition(now);
  47. }
  48. private static long Transition(DateTime d)
  49. {
  50. return (d.Ticks - dt.Ticks) / 10000;
  51. }
  52. }
  53. }