java中的C#Timespan等价物?
我正在尝试将下面的c#代码转换为java。我在转换它时面临着困难。请任何人给我推荐一个用Java实现的简单方法java中的C#Timespan等价物?,java,timespan,Java,Timespan,我正在尝试将下面的c#代码转换为java。我在转换它时面临着困难。请任何人给我推荐一个用Java实现的简单方法 DateTime StartDate = new DateTime(PWUpdatedOn.Year, 01, 01); TimeSpan ts = new TimeSpan(PWUpdatedOn.Ticks - StartDate.Ticks); //Response.Write(ts.Days+1); days = ts.Days + 1; lngN = 0; P
DateTime StartDate = new DateTime(PWUpdatedOn.Year, 01, 01);
TimeSpan ts = new TimeSpan(PWUpdatedOn.Ticks - StartDate.Ticks);
//Response.Write(ts.Days+1);
days = ts.Days + 1;
lngN = 0;
PWUpdatedOn.Year = 2016 // current year
正如另一封信中所回答的那样
从JodaTime开始就可以了
时间间隔表示两个瞬间之间的一段时间。间隔>包括开始瞬间,不包括结束瞬间。结束瞬间始终大于或等于开始瞬间。
间隔有固定的毫秒持续时间。这是开始和结束瞬间之间的差异。
持续时间由ReadableDuration单独表示。因此,间隔是不可比较的。要比较两个时间间隔的长度,您应该比较它们的持续时间
间隔也可以转换为ReadablePeriod。这表示开始点和结束点之间在年和日等字段方面的差异
间隔是线程安全且不可变的
我不确定C#中有什么记号。但它会是这样的:
LocalDateTime startDate = LocalDateTime.of(PWUpdatedOn.getYear(), 1, 1);
Period ts = Period.between(PWUpdatedOn, startDate.toLocalDate());
days = ts.getDays() + 1;
请注意,Period.between()需要两个LocalDate实例。如果PWUpdateOn是LocalDateTime实例,则需要使用toLocalDate()方法对其进行转换
一些潜在的相关备注:对于分区日期时间,使用ZonedDateTime而不是LocalDateTimel;所有的时间和周期对象在Java中都是不可变的。取决于您希望让它工作的Java版本。在Java 8中,有
Java.time.*
类可以为您实现这一点,但在此之前,您必须使用JodaTime库或使用原语值自行计算。请检查Java 8