DataConverter.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System;
  2. using System.Text;
  3. namespace ToneTuneToolkit.Common
  4. {
  5. /// <summary>
  6. /// OK
  7. /// 数据转换器
  8. /// </summary>
  9. public class DataConverter
  10. {
  11. /// <summary>
  12. /// 字符串转二进制
  13. /// </summary>
  14. /// <param name="str">数据</param>
  15. /// <returns>二进制数据</returns>
  16. public static string StringToBinary(string str)
  17. {
  18. byte[] data = Encoding.Default.GetBytes(str);
  19. StringBuilder sb = new StringBuilder(data.Length * 8);
  20. foreach (byte item in data)
  21. {
  22. sb.Append(Convert.ToString(item, 2).PadLeft(8, '0'));
  23. }
  24. return sb.ToString();
  25. }
  26. /// <summary>
  27. /// 二进制转字符串
  28. /// </summary>
  29. /// <param name="str">数据</param>
  30. /// <returns>字符串数据</returns>
  31. public static string BinaryToString(string str)
  32. {
  33. System.Text.RegularExpressions.CaptureCollection cs = System.Text.RegularExpressions.Regex.Match(str, @"([01]{8})+").Groups[1].Captures;
  34. byte[] data = new byte[cs.Count];
  35. for (int i = 0; i < cs.Count; i++)
  36. {
  37. data[i] = Convert.ToByte(cs[i].Value, 2);
  38. }
  39. return Encoding.Default.GetString(data, 0, data.Length);
  40. }
  41. /// <summary>
  42. /// 时间戳转为C#格式时间
  43. /// </summary>
  44. /// <param name="millsecondTimeStamp">js时间戳(毫秒)</param>
  45. /// <returns>C#日期</returns>
  46. public static DateTime ConvertTimestamp2DateTime(long millsecondTimeStamp)
  47. {
  48. DateTime gmtDT = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1, 8, 0, 0), TimeZoneInfo.Local); // 格林威治时间
  49. TimeSpan ts = new TimeSpan(long.Parse(millsecondTimeStamp + "0000")); // 转成戳 // 不明白为什么要加0000
  50. return gmtDT.Add(ts);
  51. }
  52. }
  53. }