The*_*ani 1 c# datetime type-conversion nodatime
我在项目中使用本机Datetime和Noda Time库LocalDate.LocalDate主要用于计算,而Datetime用于其他地方.
有人可以给我一个简单的方法来转换本地和nodatime日期字段?
我目前正在使用以下方法将Datetime字段转换为Noda LocalDate.
LocalDate endDate = new LocalDate(startDate.Year, startDate.Month, startDate.Day);
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 18
最简单的方法是将DateTimea 转换为a LocalDateTime并取得Date部分:
var date = LocalDateTime.FromDateTime(dateTime).Date;
Run Code Online (Sandbox Code Playgroud)
我希望这比获得年,月,日更有效DateTime.(这对你来说意义重大是另一回事.)
在Noda Time 2.0中,有一个扩展方法,DateTime所以你可以使用:
using static NodaTime.Extensions.DateTimeExtensions;
...
var date = dateTime.ToLocalDateTime().Date;
Run Code Online (Sandbox Code Playgroud)
对于相反的方向,我再次通过LocalDateTime:
var dateTime = date.AtMidnight().ToDateTimeUnspecified();
Run Code Online (Sandbox Code Playgroud)
NodaTime API的开发者还没有露出从转换DateTime到LocalDate.但是,您可以自己创建一个扩展方法,并在任何地方使用它作为简写:
public static class MyExtensions
{
public static LocalDate ToLocalDate(this DateTime dateTime)
{
return new LocalDate(dateTime.Year, dateTime.Month, dateTime.Day);
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
LocalDate localDate = startDate.ToLocalDate();
Run Code Online (Sandbox Code Playgroud)