using System; using System.Globalization; namespace GFGGame { public class LauncherTimeUtil { private static DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); private static readonly string[] Formats = { "HH:mm", "'['yyyy']['M']['dd']'", "'['yyyy']['MM']['d']'", "'['yyyy']['M']['d']'", "'['yyyy']['MM']['dd']'", "'['yyyy']['MM']['dd']['HH:mm']'", "'['yyyy']['MM']['dd']['H:mm']'", "'['yyyy']['M']['dd']['HH:mm']'", "'['yyyy']['M']['dd']['H:mm']'", "'['yyyy']['MM']['d']['HH:mm']'", "'['yyyy']['MM']['d']['H:mm']'", "'['yyyy']['M']['d']['HH:mm']'", "'['yyyy']['M']['d']['H:mm']'", "'['yyyy']['MM']['dd']['HH:mm:ss']'", "'['yyyy']['M']['dd']['HH:mm:ss']'", "'['yyyy']['MM']['d']['HH:mm:ss']'", "'['yyyy']['M']['d']['HH:mm:ss']'", }; private static DateTime GetDateTime(string timeStr) { if (DateTime.TryParseExact(timeStr, Formats, null, DateTimeStyles.None, out var result)) { return result; } throw new FormatException("Invalid date format"); } //转换成时间戳,单位毫秒 public static long GetTimestamp(string timeStr) { var dateTime = GetDateTime(timeStr); return Transition(dateTime); } // 获取当前时间的时间戳,单位毫秒 public static long GetCurrentTimestamp() { DateTime now = DateTime.UtcNow; return Transition(now); } private static long Transition(DateTime d) { return (d.Ticks - dt.Ticks) / 10000; } } }