تحويل كائن C # التاريخ والوقت ليببكاب ملف التقاط الطابع الزمني

StackOverflow https://stackoverflow.com/questions/1445865

  •  22-07-2019
  •  | 
  •  

سؤال

وأنا عالقة في تحويل الكائن التاريخ والوقت إلى الطابع الزمني لتنسيق ملف القبض على يببكاب (تستخدم أيضا من قبل يريشارك، <وأ href = "HTTP: //٪ 20http: //wiki.wireshark.org/Development/LibpcapFileFormat "يختلط =" نوفولو noreferrer "> تنسيق ملف definitiom ) في C #. الطابع الزمني لا يمكن أن ينجح في تحويل الكائن بلدي هو الطابع الزمني في رأس الحزمة (رقم قياسي) (guint32 ts_sec وguint32 ts_usec).

هل كانت مفيدة؟

المحلول

ويمكنك أن تفعل ذلك كما يلي:

DateTime dateToConvert = DateTime.Now;
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
TimeSpan diff = date - origin;

// Seconds since 1970
uint ts_sec = Math.Floor(diff.TotalSeconds);
// Microsecond offset
uint ts_usec = 1000000 * (diff.TotalSeconds - ts_sec);

نصائح أخرى

فمن الأفضل لتحويل يونكس عصر وdateToConvert بك إلى UTC قبل أي تلاعب. هناك منشئ التاريخ والوقت الذي يستغرق DateTimeKind لبناء وUnixEpoch، وهناك طريقة ToUniversalTime () لdateToConvert. إذا كنت تريد دائما الآن، هناك خاصية DateTime.UtcNow المفيدة التي يعتني ذلك لك. رمز كما هو مكتوب أن ليس لديها أي مشاكل، ولكن إذا قمت بإجراء هذه وظيفة، وUTC التاريخ يمكن أن تنتقل وتعمل مع UTC التاريخ الهدف ويونكس عصر المحلي بالتأكيد لن يعطي النتائج الصحيحة إلا إذا كنت في GMT و ليس على فصل الصيف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top