Tag: datetime

在C#中计算重复日期的正确方法

在我的项目中,我需要计算重复事件的日期。 一开始我只有一个开始日期/时间以及该事件必须重复的信息: Every Day Every Week Every 2 Weeks Every 3 Weeks Every Month Every 2 Months … 这样做的正确方法是什么? 它应该可以正常使用不同的时区和日节省时间设置。 我想我应该将日/周/月添加到本地DateTime,然后将其转换为UTC。 但我不确定这一点。 如果我添加几天会发生什么,这将是我们需要向前调整我们的时钟一小时的时间。 在这种情况下,此时间不存在。 下面是我写的代码,但我不确定它在每种情况下都能正常工作: private static List FindOccurrences(DateTime localStart, Repeat repeat, int occurrences) { var result = new List { localStart }; switch (repeat) { case Repeat.Daily: for (int i = 1; i <= […]

如何使用CultureInfo生成本地化的日期字符串

我有以下代码以en-us格式生成日期字符串。 我想传入LCID(或本地化语言的等效值)来生成日期字符串的本地化版本。 我怎么做到这一点? public static string ConvertDateTimeToDate(string dateTimeString) { CultureInfo culture = CultureInfo.InvariantCulture; DateTime dt = DateTime.MinValue; if (DateTime.TryParse(dateTimeString, out dt)) { return dt.ToShortDateString(); } return dateTimeString; }

日期时间格式问题:字符串未被识别为有效的DateTime

我想在C#中将输入字符串格式化为MM / dd / yyyy hh:mm:ss格式。 输入字符串的格式为MM/dd/yyyy hh:mm:ss 例如: “04/30/2013 23:00” 我尝试了Convert.ToDateTime()函数,但它认为4为日期,3为月份,这不是我想要的。 实际上月是04,日期是03。 我也尝试了DateTime.ParseExact()函数,但是得到了Exception。 我收到错误: 字符串未被识别为有效的DateTime。

条件表达式中的数据类型不匹配| Access,OleDb,C#

我使用C#从MS Access读取/更新数据。 我的代码是: public static void UpdateLastLogin(int userid, DateTime logintime) ///logintime = DateTime.Now { string sql = @”UPDATE [Customers] SET [LastLogin]=?”; OleDbParameter[] prms = new OleDbParameter[] { new OleDbParameter(“@LastLogin”,logintime) }; using (DAL dal = new DAL()) { dal.UpdateRow(sql, false, prms); } } 谈到日期,我遇到了麻烦。 这会引发“条件表达式中的数据类型不匹配”。 错误。 (为了保持简单,我删除了WHERE子句)我是否将[LastLogin] =?括起来? 单引号的问号,#符号..没有帮助。 任何有关如何使用Access和OleDb提供程序处理DateTime对象的线索将不胜感激。 提前致谢。

更改WCF中的默认日期序列化

有没有改变WCF中DateTime的默认JSON序列化/反序列化? 目前,DateTime序列化为/Date(1372252162657+0200)/格式,应该没问题,但是当我的服务器不是UTC(我无法更改)时,我遇到了问题。 此服务正在处理的所有日期/时间数据均为UTC格式。 当服务器使用UTC时,一切正常。 但是,staging / prod环境设置为GMT + 1(Paris),序列化器假设日期/时间是GMT + 1,完全忽略属性Kind 。 因此,您希望调用DateTime.SetKind()并将其设置为UTC将无法正常工作。 实际上,序列化时间延迟了一个小时。 我可以做双向日期对话(它在反序列化时也做出相同的假设,因此它总是GMT + 1)对话的日期:UTC到/从服务器时间,但这是乏味的。 所以我想也许我可以覆盖默认的序列化行为。

如何在c#中生成类似“11月1日”的日期格式

我怎样才能在c#中提到日期格式。 对于2010年11月1日,它应显示为:11月1日 对于2010年11月30日,它应显示为:11月30日 我们可以使用任何日期格式或制作一个自定义函数,返回1 – >’st’,2->’nd’3 – >’rd’,任何日期no – >’th’。

如何在C#中将毫秒转换为日期格式?

在C#中,如何将Unix风格的时间戳转换为yyyy-MM-ddThh:mm:ssZ?

确定两个DateTimes之间的差异,仅计算开放时间

对于我们在C#中的支持软件,我需要确定两个DateTime之间的时间跨度,但我只想计算开放时间(即工作日从09:00到17:00)。 因此,例如,如果第一个DateTime是15/02/2011 16:00而第二个是16/02/2011 10:00,则该方法将返回2个小时。 任何帮助是极大的赞赏!

如果struct包含DateTime字段,为什么LayoutKind.Sequential的工作方式不同?

如果struct包含DateTime字段,为什么LayoutKind.Sequential的工作方式不同? 请考虑以下代码(必须使用“unsafe”编译的控制台应用程序): using System; using System.Runtime.InteropServices; namespace ConsoleApplication3 { static class Program { static void Main() { Inner test = new Inner(); unsafe { Console.WriteLine(“Address of struct = ” + ((int)&test).ToString(“X”)); Console.WriteLine(“Address of First = ” + ((int)&test.First).ToString(“X”)); Console.WriteLine(“Address of NotFirst = ” + ((int)&test.NotFirst).ToString(“X”)); } } } [StructLayout(LayoutKind.Sequential)] public struct Inner { public byte […]

在Mongo中存储Utc和本地日期时间

我有一个Mongo C#实现,它将datetime存储为UTC。 MongoDB.Bson.Serialization.Options.DateTimeSerializationOptions options = MongoDB.Bson.Serialization.Options.DateTimeSerializationOptions.UtcInstance; var serializer = new MongoDB.Bson.Serialization.Serializers.DateTimeSerializer(options); MongoDB.Bson.Serialization.BsonSerializer.RegisterSerializer( typeof(DateTime), serializer); 我还需要将用户本地时区与UTC一起存储。 为了解释,我有两个属性 DateTime WorkItemToCompleteBy{get; set;} [BsonDateTimeOptions(Kind = DateTimeKind.Unspecified)] DateTime WorkItemToCompleteByLocal{get; set;} 我想将澳大利亚/美国/印度/其他时间存储在本地属性中,并将相应的UTC值存储在另一个属性中。 由于处理了几十个时区,我有代码将UTC转换为所需的时区并将其存储在WorkItemToCompleteByLocal属性中。 我希望Mongo按原样存储这个值并将其返回给我。 问题是Mongo总是将它存储为ISODate并将值转换为Utc版本。 解释。 如果UTC是0730小时,我计算布里斯class时间为1730小时并将其设置为WorkitemToCompleteByLocal,它们将保存为 “WorkItemToCompleteBy” : ISODate(“2013-06-05T07:30:00Z”), “WorkItemToCompleteByLocal” : ISODate(“2013-06-05T12:00:00Z”), Mongo将提供的时间解释为本地, 服务器位于印度,并将其转换为相当于1200小时的UTC。 虽然它将值恢复为1730(IST虽然)但它违背了我的目的并阻止我在Mongo上运行任何基于本地时间的查询。 没有想法。 感谢任何帮助,以帮助存储WorkItemToCompleteByLocal日期’原样’而无需修改