C#Timespan相当于java?

时间:2016-11-21 09:02:17

标签: 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;

 PWUpdatedOn.Year = 2016 // current year

2 个答案:

答案 0 :(得分:2)

正如Jigar Joshi在其他Question中回答的那样。

  来自JodaTime的

Interval会做..

     
    

时间间隔表示两个时刻之间的一段时间。间隔>包括开始即时和排除结束。结束时刻总是大于或等于开始时刻。     间隔具有固定的毫秒持续时间。这是开始和结束时刻之间的差异。     持续时间由ReadableDuration单独表示。因此,间隔不具有可比性。要比较两个区间的长度,您应该比较它们的持续时间。

         

也可以将间隔转换为ReadablePeriod。这表示起点和终点之间的差异,如年和日等字段。

         

Interval是线程安全且不可变的。

  

答案 1 :(得分:1)

我不确定Ticks中的Ticks是什么。但它会是这样的:

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中都是不可变的。