C# 相当于noda中的joda LocalTime getMillisOfDay()

C# 相当于noda中的joda LocalTime getMillisOfDay(),c#,jodatime,nodatime,C#,Jodatime,Nodatime,我正在将一些代码从Java移植到.NET,并寻找与LocalTime对象的getMillisOfDay()joda-time方法相当的noda时间 是否有一个等效的,或者我必须自己编写代码 使用现成的.Net功能,您可以获得自午夜以来最接近的毫秒数: dateTime.TimeOfDay.TotalMilliseconds e、 g TimeOfDay返回自午夜(一天中的时间)起的TimeSpan,并且totalmillizes返回(名称可能已经给出)该TimeSpan的总毫秒数 顺便说一下,

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


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

使用现成的.Net功能,您可以获得自午夜以来最接近的毫秒数:

dateTime.TimeOfDay.TotalMilliseconds
e、 g

TimeOfDay
返回自午夜(一天中的时间)起的
TimeSpan
,并且
totalmillizes
返回(名称可能已经给出)该
TimeSpan
的总毫秒数

顺便说一下,这是一个
双精度的
,所以你也可以得到毫秒的分数。如果您非常需要此功能,可以使用扩展方法:

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();

使用现成的.Net功能,您可以获得最接近午夜后的毫秒数:

dateTime.TimeOfDay.TotalMilliseconds
e、 g

TimeOfDay
返回自午夜(一天中的时间)起的
TimeSpan
,并且
totalmillizes
返回(名称可能已经给出)该
TimeSpan
的总毫秒数

顺便说一下,这是一个
双精度的
,所以你也可以得到毫秒的分数。如果您非常需要此功能,可以使用扩展方法:

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();
在Noda Time 1.x中,使用该属性,然后将其除以
NodaConstants.tickspermillsecond
以获得毫秒:

LocalTime localTime = ...;
long millis = localTime.TickOfDay / NodaConstants.TicksPerMillisecond;
在Noda Time 1.x中,使用该属性,然后将其除以
NodaConstants.tickspermillsecond
以获得毫秒:

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

不熟悉野田佳彦时间,millisOfDay是给定日期时间午夜后的毫秒数吗?是的,确实如此……为什么要使用
LocalTime
?与绝对邮票(
Instant
DateTime
)相比,这种类型的邮票的需求通常非常少。尤其是在某些DST切换期间,午夜不存在。由于所有日期时间都存储在UTC中,因此此特定应用程序始终使用LocalDate/Time。不熟悉noda时间,millisOfDay是给定日期时间午夜后的毫秒数吗?是的,正是如此……为什么使用
LocalTime
?与绝对邮票(
Instant
DateTime
)相比,这种类型的邮票的需求通常非常少。特别是在某些DST切换期间,午夜不存在。由于所有日期时间都存储在UTC中,因此此特定应用始终使用LocalDate/Time。请注意,只有在使用UTC或忽略时区(使用
DateTimeKind.Unspecified
,或仅将其视为“本地”时,此功能才有效假设时区不存在),因为否则这将(可能)每年返回两次错误的值:
DateTime
,与预期相反,DST/时区对所有方法和结果都是无知的(除了
ToUniveralTime()
/
ToLocalTime()
时间跨度
在DST日将短/长一小时(假设您在不同的DST区域,而不是其他地方)。请注意,这仅在使用UTC或忽略时区(使用
DateTimeKind.Unspecified
,或将其视为“本地”并假装时区不存在)时有效,因为否则这将(可能)每年返回两次错误的值:
DateTime
,与预期相反,DST/时区对所有方法和结果都是无知的(除了
Tounivertime()
/
ToLocalTime()
时间跨度在DST天将短/长一小时(假设你在一个小时不同的DST区域,而不是其他地方)。谢谢-很好;虽然对于最初的问题,我认为它是TickspermillSecond。谢谢-很好;虽然对于最初的问题,我认为它是TickspermillSecond。