在noda time LocalDate和Datetime之间进行转换的最佳方式是什么?

时间:2016-08-09 06:09:16

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

2 个答案:

答案 0 :(得分:16)

最简单的方法是将DateTime转换为LocalDateTime并转换Date部分:

var date = LocalDateTime.FromDateTime(dateTime).Date;

我希望从DateTime获得年,月,日的效率更高。 (这对你来说是否重要是另一回事。)

在Noda Time 2.0中,DateTime上有一个扩展方法,您可以使用:

using static NodaTime.Extensions.DateTimeExtensions;
...
var date = dateTime.ToLocalDateTime().Date;

对于相反的方向,我再次通过LocalDateTime

var dateTime = date.AtMidnight().ToDateTimeUnspecified();

答案 1 :(得分:6)

NodaTime API的开发者尚未公开从@Directive({ selector: '[selectable]' }) export class SelectableDirective{ private el: HTMLElement; @Input('selectable') option:any; @Input('params') params; ... } <li *ngFor = 'let opt of currentQuestion.options' [selectable] = 'opt' [params]='{firstParam: 1, seconParam: 2, thirdParam: 3}' (selectedOption) = 'onOptionSelection($event)'> {{opt.option}} </li> 的转换。但是,您可以自己创建一个扩展方法,并在任何地方使用它作为简写:

DateTime

用法:

LocalDate