0

I am trying to convert a sample java code to c#. This is the java code and I need some assistance in figuring out the proper way to get the equivalent code in c#. This is what I tried so far.

java code

TimeZone kenyaTimeZone = TimeZone.getTimeZone("Africa/Kenya");
Calendar calendar = Calendar.getInstance(kenyaTimeZone);
long timestamp = calendar.getTimeInMillis() / 1000; 

C# code

TimeZoneInfo tzone = TimeZoneInfo.FindSystemTimeZoneById("Africa /Kenya");
DateTimeOffset dt = new DateTimeOffset(DateTime.UtcNow, tzone.BaseUtcOffset);

This is where I am stuck. Please help me out. I would like to get the result in milliseconds and I am unable to figure out the proper way to do it.

Olivier Jacot-Descombes
  • 104,806
  • 13
  • 138
  • 188

3 Answers3

0

To convert the difference between two datetimes to milliseconds:

double totalMs = (endDate - startDate).TotalMilliseconds;
red9350
  • 338
  • 3
  • 11
0

Maybe, this short code could help you. I read that java function "calendar.getTimeInMillis()" returns the milliseconds since 1970-01-01 (Like Unix Timestamp).

    var dt = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("E. Africa Standard Time"));
    // Get C# time in milliseconds (since 1900-01-01)
    double milli = new TimeSpan(dt.Ticks).TotalMilliseconds;

    // Get Unix timestamp
    double unix = dt.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds;

    Console.WriteLine("Total Milliseconds: {0}  Unix: {1}", milli, unix);
Guergolet
  • 114
  • 1
  • 6
0

use this :

decimal miliseconds = myDateTime.ToUniversalTime().Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;

myDateTime is a DateTime object

good luck :)