ConvertHelper.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using Flyinsono.DBCopy.Tool.Entities.Config;
  2. using Newtonsoft.Json;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace Flyinsono.DBCopy.Tool.Utilities
  10. {
  11. internal class ConvertHelper
  12. {
  13. /// <summary>
  14. /// 时间转长整形的时间戳
  15. /// </summary>
  16. /// <param name="time">当前时间</param>
  17. /// <param name="isUtc">是否utc格式时间戳</param>
  18. /// <returns>true</returns>
  19. public static long ToTimestamp(DateTime time, bool isUtc = false)
  20. {
  21. DateTime refTime = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(1970, 1, 1), TimeZoneInfo.Utc);
  22. var diffSpan = (isUtc ? time : time.ToUniversalTime()) - refTime;
  23. long unixTime = (long)Math.Round(diffSpan.TotalMilliseconds, MidpointRounding.AwayFromZero);
  24. return unixTime;
  25. }
  26. /// <summary>
  27. /// 读取文件
  28. /// </summary>
  29. /// <typeparam name="T"></typeparam>
  30. /// <param name="fileName"></param>
  31. /// <returns></returns>
  32. public static T ReadFileData<T>(string fileName = "TestConfig.json")
  33. {
  34. var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Config", fileName);
  35. if (!File.Exists(path))
  36. {
  37. return default(T);
  38. }
  39. var jsonContent = File.ReadAllText(path);
  40. try
  41. {
  42. var testConfig = JsonConvert.DeserializeObject<T>(jsonContent);
  43. return testConfig;
  44. }
  45. catch (Exception ex)
  46. {
  47. Logger.WriteLineError($"ReadFileData Error:{ex}");
  48. return default(T);
  49. }
  50. }
  51. /// <summary>
  52. /// 写入文件
  53. /// </summary>
  54. /// <param name="fileName"></param>
  55. /// <param name="message"></param>
  56. public static void WriteFileData(string message, string fileName = "TestConfig.json")
  57. {
  58. var logPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Config", fileName);
  59. using (StreamWriter streamWriter = new StreamWriter(logPath, true))
  60. {
  61. streamWriter.WriteLine(message);
  62. }
  63. }
  64. }
  65. }