Я переношу некоторый код с Java на .NET и ища эквивалент ноды времени метода joda-time объекта LocalTime getMillisOfDay()
.Эквивалент joda LocalTime getMillisOfDay() в ноде
Есть ли эквивалентный код, или я должен сам его кодировать?
Я переношу некоторый код с Java на .NET и ища эквивалент ноды времени метода joda-time объекта LocalTime getMillisOfDay()
.Эквивалент joda LocalTime getMillisOfDay() в ноде
Есть ли эквивалентный код, или я должен сам его кодировать?
В Ноде время 1.x, используйте LocalTime.TickOfDay
свойство, а затем просто разделить его на NodaConstants.TicksPerMillisecond
получить миллисекунды:
LocalTime localTime = ...;
long millis = localTime.TickOfDay/NodaConstants.TicksPerMillisecond;
Спасибо - отлично работает, хотя для исходного вопроса я думаю, что это TicksPerMillisecond. – Jon
@Jon: да - неправильно, исправится. –
Ближайший вы можете добраться до количество миллисекунд, прошедших с полуночи с вне коробки функциональности .Net:
dateTime.TimeOfDay.TotalMilliseconds
например
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();
Обратите внимание, что это работает только в том случае, если вы используете UTC или _ignoring time zone_ (либо с 'DateTimeKind.Unspecified', либо просто рассматриваете его как« local »и притворяетесь, что часовой пояс не существует), поскольку в противном случае это будет (возможно) возвращают неправильное значение два раза в год: 'DateTime', вопреки ожиданиям, является DST/часовым поясом невежественным для всех методов и результатов (кроме' ToUniveralTime() '/' ToLocalTime() '.' TimeSpan' будет быть в часе коротких/длинных в дни DST (при условии, что вы находитесь в часовом разном зоне DST, а не что-то еще). –
Не знакомы с нода-временем, миллис.Од. Сколько миллисекунд с полуночи данного DateTime? –
Да, именно это. – Jon
... Почему вы используете 'LocalTime'? Потребность в этом типе обычно довольно редко, по сравнению с абсолютными марками ('Instant' или' DateTime'). Тем более, что полночь не существует во время некоторых переключателей DST. –