正在格式化C#中的DateTime值
本文关键字:DateTime 中的 格式化 | 更新日期: 2023-09-27 17:57:29
我有一个日期时间变量,如下所示:
DateTime date1 = DateTime.Now; // has 9.4.2014 01:12:35
我想将其分配给另一个日期时间或更改其值,如下所示:
2014-04-09 13:12:35
我该怎么办?谢谢
编辑:我不想要字符串变量。我想要它的日期时间格式。
试试这个:
date1.ToString("yyyy-MM-dd HH:mm:ss")
另请看下表http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx
编辑:
正如Jon所说(我没有提及):
您应该添加InvariantCulture
(如果您不希望它与当前线程区域性一起使用):
CultureInfo heIL = new CultureInfo("he-IL");
heIL.DateTimeFormat.Calendar = new HebrewCalendar();
CultureInfo dft = Thread.CurrentThread.CurrentCulture;
Thread.CurrentThread.CurrentCulture = heIL;
检查这些:
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss",CultureInfo.InvariantCulture);
结果(我住在以色列):
תשע"ד-ח'-ט' 13:32:31
2014-04-09 13:32:31
您编写的代码只为变量赋值。它不返回任何内容,也没有任何固有的字符串表示。DateTime
值是,只是日期/时间。它可以以您想要的任何格式显示,但这不是变量值的一部分。
听起来你想把它转换成一个特定格式的字符串,你应该用DateTime.ToString
来做这件事,但只有在真正需要的时候才。尽量把这个值保持为DateTime
。通常,您只需要转换为字符串,就可以向用户显示值,或者可能在JSON之类的文件中使用它。(如果您发现自己将其转换为字符串以供数据库使用,那么您的操作是错误的——确保您的架构具有适合该字段的数据类型,使用参数化查询,并将参数值设置为仅DateTime
,也不需要格式化。)
您指定的格式看起来是机器可读的,而不是特定于文化的,所以我建议:
string text = date1.ToString("yyyy-MM-dd HH:mm:ss",
CultureInfo.InvariantCulture);
通过指定不变的区域性,我们已经说过,结果不应该取决于当前区域性(否则会如此)——例如,如果当前区域性使用不同的日历系统,这可能会产生很大的影响。
类似以下内容,它是DateTime
对象的构造函数之一:
d = new DateTime(2014, 5, 6, 5, 4, 30);
将d
设置为06/05/2014 05:04:30。其参数按降序排列,依次为年、月、日、小时、分钟和秒。
如果您想按一定量调整时间,请查看add方法或TimeSpans
。
您可以使用类似的东西来格式化日期:
date1.ToString("dd/MM/yyyy HH:MM:ss")
通过使用"HH"而不是"HH",您将获得24小时的小时格式。
希望能有所帮助。
试试这个
DateTime date1 = DateTime.Now;
string datestring=date1.ToString("yyyy-MM-dd HH:mm:ss",CultureInfo.InvariantCulture)
http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx
作为猜测;返回";通过在调试时遍历IDE中的变量,您可以看到DateTime对象的值。
这只是调试器在内部调用DateTime对象的默认ToString()方法的另一种形式。值相同。
参见:system.datetime
DateTime值及其字符串表示
在内部,所有DateTime值都表示为自0001年1月1日午夜12:00:00以来经过的刻度数(100纳秒间隔的数量)。实际DateTime值与该值在用户界面元素中显示或写入文件时的显示方式无关。DateTime值的外观是格式化操作的结果。格式化是将值转换为其字符串表示形式的过程。
由于日期和时间值的外观取决于文化、国际标准、应用程序要求和个人偏好等因素,DateTime结构通过其ToString方法的重载,在格式化日期和时间数值方面提供了很大的灵活性默认的DateTime.ToString()方法使用当前区域性的短日期和长时间模式返回日期和时间值的字符串表示