相当于noda中的joda LocalTime getMillisOfDay()

时间:2016-06-02 11:28:51

标签: c# jodatime nodatime

我正在将一些代码从Java移植到.NET,并寻找与LocalTime对象的getMillisOfDay() joda-time方法等效的noda-time。

是否有相同的一个或我必须自己编码?

2 个答案:

答案 0 :(得分:3)

在Noda Time 1.x中,使用LocalTime.TickOfDay属性,然后将其除以NodaConstants.TicksPerMillisecond以获得毫秒:

LocalTime localTime = ...;
long millis = localTime.TickOfDay / NodaConstants.TicksPerMillisecond;

答案 1 :(得分:0)

最近,您可以使用开箱即用的.Net功能获取自午夜以来的毫秒数

dateTime.TimeOfDay.TotalMilliseconds

e.g。

double millisOfDay = DateTime.Now.TimeOfDay.TotalMilliseconds;

TimeOfDay从午夜(一天中的某个时间)返回TimeSpanTotalMilliseconds返回(该名称可能已经放弃)TimeSpan的总毫秒数

顺便说一下,它是double,所以你也会得到几分之一毫秒。如果你需要这么多,扩展方法可能会有所帮助:

public static class DateTimeExtension
{
    // should of course be in pascal case ;)
    public static int getMillisOfDay(this DateTime dateTime)
    {
        return (int) dateTime.TimeOfDay.TotalMilliseconds;
    }
}

int millisOfDay = DateTime.Now.getMillisOfDay();