Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的C#Timespan等价物?_Java_Timespan - Fatal编程技术网

java中的C#Timespan等价物?

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

我正在尝试将下面的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
正如另一封信中所回答的那样

从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