相当于 noda 中的 joda LocalTime getMillisOfDay()

Equivalent of joda LocalTime getMillisOfDay() in noda

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

是否有等效的或者我必须自己编写代码?

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

dateTime.TimeOfDay.TotalMilliseconds

例如

double millisOfDay = DateTime.Now.TimeOfDay.TotalMilliseconds;

TimeOfDay returns 自午夜(一天中的时间)以来的 TimeSpanTotalMilliseconds returns(名字可能已经泄露)总数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();

在野田时间 1.x 中,使用 LocalTime.TickOfDay 属性,然后除以 NodaConstants.TicksPerMillisecond 得到毫秒:

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