我正在将一些代码从Java移植到.NET,并寻找与LocalTime对象的getMillisOfDay()
joda-time方法等效的noda-time。
是否有相同的一个或我必须自己编码?
答案 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
从午夜(一天中的某个时间)返回TimeSpan
,TotalMilliseconds
返回(该名称可能已经放弃)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();