我正在尝试将示例java代码转换为c#。这是java代码,我需要一些帮助来确定在c#中获取等效代码的正确方法。这是我到目前为止所尝试的。
java代码
TimeZone kenyaTimeZone = TimeZone.getTimeZone("Africa/Kenya");
Calendar calendar = Calendar.getInstance(kenyaTimeZone);
long timestamp = calendar.getTimeInMillis() / 1000;
C#代码
TimeZoneInfo tzone = TimeZoneInfo.FindSystemTimeZoneById("Africa /Kenya");
DateTimeOffset dt = new DateTimeOffset(DateTime.UtcNow, tzone.BaseUtcOffset);
这是我被困的地方。请帮帮我。我想在几毫秒内得到结果,我无法找到正确的方法。
答案 0 :(得分:0)
将两个日期时间之间的差异转换为毫秒:
double totalMs = (endDate - startDate).TotalMilliseconds;
答案 1 :(得分:0)
也许,这个简短的代码可以帮到你。我读到java函数“calendar.getTimeInMillis()”返回自1970-01-01以来的毫秒数(与Unix时间戳一样)。
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);
答案 2 :(得分:0)
使用此:
decimal miliseconds = myDateTime.ToUniversalTime().Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;
myDateTime是一个DateTime对象
祝你好运:)