Tag: datetime

如何使用LINQ to XML查询日期时间值?

我正在开发silverlight中的window phone 7应用程序。 我是银光的新手。 我也是LINQ to XML的新手。 在我的应用程序中,用户选择日期并将一些交易细节提交到应用程序中。 细节存储在XML文件中。 我在我的应用程序中使用自定义日期控件进行日期选择,如下所示 private void DatePicker_ValueChanged(object sender, DateTimeValueChangedEventArgs e) { AppObj = Application.Current as App; AppObj.date = (DateTime)EntryDate.Value; } 然后AppObj.date的值存储在XML文件中。 有时我使用DateTime.Now将日期存储在XML文件中。 现在,我想通过查询LINQ to XML来生成提交的事务详细信息的报告。 我想为今天的日期,当前周和当月生成报告。 对于今天的日期报告,我使用以下代码 public void GetTransactionObjects(String strXMLFile, DateTime VDateTime) { XDocument doc = null; XMLFileManager XMLDocObj = new XMLFileManager(); doc = XMLDocObj.LoadXMLFile(strXMLFile); var vTransaction = […]

日期时间格式

当我调用DateTime的ToString方法时,我得到跟随字符串“17.05.2010 8:05:22”。 有没有其他DateTime格式,我可以在八小时之前得到跟随字符串“17.05.2010 08:05:22”零?

为IQueryable生成表达式

我正在使用LINQ-> WCF数据服务 – > EF,它支持LINQ的一个子集,但有一些注意事项。 一旦学习了各种各样的技巧和变通方法,我就没有遇到过麻烦,但是我想制作一个可重用的表达式生成器,用于仅比较DateTime的Date部分。 使用常规EF,您可以使用EntityFunctions.TruncateTime (EF <6)或DbFunctions.TruncateTime ( DbFunctions.TruncateTime +),但这不适用于数据服务。 到目前为止,我的解决方案是反复构建where子句的混乱: .Where(x => x.DateProperty.Year == DateToCompare.Year && x.DateProperty.Month == DateToCompare.Month && x.DateProperty.Day == DateToCompare.Day); 这只是令人讨厌的必须反复写(但它有效),所以我试图创建类似的东西: .WhereDate(x => x.DateProperty, DateToCompare); 任何类似的东西都会做,只是简短,甜蜜和可读 – 我厌恶重复的不必要的感觉代码。 结构不是问题,我知道我需要一些需要IQueryable , Func (或Expression<Func> )和DateTime并返回IQueryable 。 public static IQueryable WhereDate(this IQueryable data, Func> selector, DateTime date) { return data.Where(/*Something*/); }; 我遇到麻烦的地方就是采用这个并构建一个可以放入where子句而不违反表达式树的限制的表达式。 […]

将日历相互转换使用NodaTime库

我使用Noda Time来处理DateTime问题,我阅读了几乎所有的文档,但是我有一些问题要将日历转换为彼此, 首先,Noda支持多少个日历? 正如CalendarSystem所说,只有4个日历: a)CopticCalendar / b)GregorianCalendar / c)IslamicCalendar / d)JulianCalendar 那么其他日历系统呢? 我使用波斯日历又称Jalali日历 ,所以有没有办法在NodaTime中使用这个日历? 以及如何将其转换为格里高利历? 我的最终目标是将时间(特殊区域)和日期转换为UTC时区和格鲁吉亚日历。 例如, 现在 ( yyyy/MM/dd – HH:mm:ss )在Asia/Tehran时区和波斯日历是:(1391/06/30 – 10:01:15)和现在在格鲁吉亚日历和UTC是(2012年) / 09/20 – 05:01:15),你的建议是什么? 时间单独根本不重要,但日期,我对它没有任何想法(在NodaTime中),有没有办法在一个过程或方法中转换这两个?

查找每个星期五从开始日期到年底

所以我又回到了另一个令人困惑的DateTime问题。 在C#中,我如何从开始日期( DateTime.Now )返回每周五的(日)直到当年年底? 因此,例如,今天是19日星期五,它将返回,26,2,9,16,23,30,7等。

c#检查时间跨度范围是否在时间范围和小时之间

假设我有3个时间范围: 07:00 – 18:00 18:00 – 23:00 23:00 – 07:00 和代码: public class TimeShift { public TimeSpan Start { get; set; } public TimeSpan End { get; set; } } List shifts = new List(); 如何检查列表中的每个项目是否在上述3个范围和多少小时之间? 例如一个TimeShift ,其中: Start: 07:00 End: 23:30 那意味着16.5小时。 对于上面的例子: Range 1: 11 hours Range 2: 5 hours Range 3: 0.5 […]

不要从序列化的DateTime对象序列化或删除TimeZone

我给出的奇怪任务是使用XML Serialization序列化LARGE对象。 此对象包含多个嵌套的UserDefined类,具有多个DateTime字段。 DateTime数据的要求是它必须始终显示在最初创建和设置数据的用户的TimeZone中。 因此,我无法使用UTC或本地时间,因为在反序列化时,它们将不会与它们相同。 我也无法以UTC显示值,它们必须以本地时间显示。 我需要的是一些奇怪的序列化格式,代表“绝对本地时间”的概念……即“没有TimeZone的本地时间”。 我可以使用正则表达式从日期字符串中删除TZ,这很容易。 但是我正在处理的对象的庞大大小意味着我经常会得到一个OutOfMemoryException。 我看着它在没有调试的情况下运行一次,并且在操作过程中我使用的内存从100k增加到800k。 不太好。 那是一个较小的文件。 Doc.DocumentElement.InnerXML = Regex.Replace(Doc.DocumentElement.InnerXML, “(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2})(\\+|-)(\\d{2}:\\d{2})”, “$1”) 到目前为止,我看到的唯一选项是创建所有dateTime字段的副本,将DT字段本身设置为“XmlIgnore()”,然后在重新加载文档后手动恢复序列化字符串数据中的所有日期。 这也不实用。 请参见自定义DateTime XML序列化 有没有办法强制序列化引擎在没有TimeZone数据的情况下序列化DateTime对象? 优选地,通用的东西不必单独应用于对象中的每个DT属性? !!编辑!! 我可能找到了部分解决方案。 它至少可以帮助前进。 DateTimeKind.Unspecified,在序列化时,似乎没有附加任何TimeZone数据。 这是我正在寻找的解决方案。 使用DateTime.SpecifyKind强制转换我的所有DateTime数据? public DateTime? StartDate { get { return _StartDate; } set { if (_StartDate == value) return; if (value != null) _StartDate = DateTime.SpecifyKind(value.Value, DateTimeKind.Unspecified); else _StartDate […]

将日期时间用毫秒转换为double或int?

我有一个看起来很好的字符串,方法如下: TimeString = “2011.01.02 22:06:52.091” 现在我想将它转换为double,并将其保存为双号。 我在c#中这样做,我怎么能这样做? 真在网上找不到答案。 编辑: 时间是金融货币报价的时间戳: 时间出价问 2011.01.02 22:06:52.091 1.5000 1.5001 这是外汇报价时间的时间戳。 我更喜欢这样:xxxxxxxxxxxxxxxx.ooo,xxxxxxxxxxxxxxx是int部分,显示我们从“2011.01.02 22:06:52”获得了多少秒,而.ooo是毫秒,为“091”你怎么看?

控制器未收到英国格式的MVC3日期

鉴于这个VM public class ApplicationDTO : BaseDTO { public DateTime Date { get; set; } public int JobId {get;set;} public int Status {get;set;} [Required] public string Message { get; set; } public string ExpertCode { get; set; } } 因此,我有一个隐藏的领域 @Html.Hidden(“Date”, DateTime.Now) 哪个小提琴手告诉我的是按照我的预期发送到服务器(英国格式,我在英国!) 但在控制器上,日期显示为默认最小值。 日期 它只是英国格式吗? 如果是这样,我最好的方式是什么呢? 虽然目前我将其设置为当前日期,但可能会将其设置为任何给定日期,即 @Html.HiddenFor(x => x.Date) 我正在使用AJAX提交表单,如果这有所不同。

ASP.net c#解析int作为datetime

给定时间: 1286294501433 这表示自1970年以来经过的毫秒数,我们如何将其转换为DateTime数据类型? 例如: transactionTime = “1286294501433”; UInt64 intTransTime = UInt64.Parse(transactionTime); DateTime transactionActualDate = DateTime.Parse(intTransTime.ToString()); 抛出: 字符串未被识别为有效的DateTime。 请注意,此function的所有时间都保证在 1970年之后 。