首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法找出一个DateTime变量对应的日历?

有没有办法找出一个DateTime变量对应的日历?
EN

Stack Overflow用户
提问于 2015-02-07 10:34:17
回答 1查看 75关注 0票数 2

假设我们有一个给定的DateTime变量,如下所示:

代码语言:javascript
复制
DateTime BirthDate{get;set;}

不同的用户/客户端根据他们喜欢的日历(在我们的例子中是GeorgianHijriPersian Calendar)设置这个变量,我们希望在Gerogian表示中保存所有的日期,以便我们可以将它们保存在Microsoft中。问题是,是否有一种方法可以找到给定日期的日历,以便我们可以将其从原来的日历转换为Georgian Canlendar

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-07 10:38:00

不,DateTime不保留日历信息..。实际上,它总是在公历上。如果使用不同的日历系统构造DateTime,则将其转换为公历,并且需要使用Calendar方法返回原始值。所以你需要单独存储日历系统,基本上。这可能是客户端配置的一部分,根据它的声音。

例如:

代码语言:javascript
复制
Calendar hebrewCalendar = new HebrewCalendar();
DateTime today = new DateTime(5775, 5, 18, hebrewCalendar);
Console.WriteLine(today.Year); // 2015
Console.WriteLine(hebrewCalendar.GetYear(today)); // 5775

另一方面,如果您要使用我的野田时间项目,那么适当的类型确实会保留日历系统的信息--而且通常会更清楚地了解即时、本地日期、本地时间等之间的差异。很明显,我有偏见,请注意:)

Noda时间等效于上面的内容(使用2.0,因为它稍微简单一些!)

代码语言:javascript
复制
using System;
using NodaTime;

class Test
{
    static void Main()
    {
        var hebrewCalendar = CalendarSystem.HebrewCivil;
        var today = new LocalDate(5775, 5, 18, hebrewCalendar);
        Console.WriteLine(today.Year); // 5775
        Console.WriteLine(today.WithCalendar(CalendarSystem.Gregorian).Year); // 2015
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28381085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档