Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中格式化日期时间值_C#_Datetime_Converter - Fatal编程技术网

C# 在C中格式化日期时间值

C# 在C中格式化日期时间值,c#,datetime,converter,C#,Datetime,Converter,我有一个datetime变量,如下所示: DateTime date1 = DateTime.Now; // has 9.4.2014 01:12:35 2014-04-09 13:12:35 我想将其分配给另一个datetime或更改其值,如下所示: DateTime date1 = DateTime.Now; // has 9.4.2014 01:12:35 2014-04-09 13:12:35 我该怎么办? 谢谢 编辑:我不想要字符串变量。我想要Datetime格式。试试这个:

我有一个datetime变量,如下所示:

DateTime date1 = DateTime.Now; // has 9.4.2014 01:12:35
2014-04-09 13:12:35
我想将其分配给另一个datetime或更改其值,如下所示:

DateTime date1 = DateTime.Now; // has 9.4.2014 01:12:35
2014-04-09 13:12:35
我该怎么办? 谢谢

编辑:我不想要字符串变量。我想要Datetime格式。

试试这个:

日期1.ToStringyyyy-MM-dd HH:MM:ss

请看下表

编辑: 正如乔恩所说,我没有提到:

如果不希望与当前线程区域性一起使用,则应添加不变量区域性:

 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对象的构造函数之一:

将d设置为2014年5月6日05:04:30。它的参数是按大小降序排列的,所以是年、月、日、时、分、秒


如果要按一定量调整时间,请查看add方法或TimeSpans。

您编写的代码只为变量赋值。它不返回任何内容,也没有任何固有的字符串表示形式。DateTime值只是一个日期/时间。它可以以您想要的任何格式显示,但这不是变量值的一部分

听起来你想把它转换成一个特殊格式的字符串,你应该用DateTime.ToString来做,但只有在你真正需要的时候。尽量将该值保持为DateTime。通常,为了向用户显示值,或者可能在JSON之类的东西中使用该值,您只需要将其转换为字符串。如果您发现自己将其转换为字符串以供数据库使用,则说明您做得不对-确保您的架构具有适当的字段数据类型,使用参数化查询,并将参数值仅设置为DateTime-或所需的格式

您指定的格式看起来是机器可读的格式,而不是特定于区域性的格式,因此我建议:

string text = date1.ToString("yyyy-MM-dd HH:mm:ss",
                             CultureInfo.InvariantCulture);

通过指定不变区域性,我们已经说过,结果不应该依赖于当前区域性,否则它会依赖于当前区域性。例如,如果当前区域性使用不同的日历系统,这可能会产生很大的差异。

您可以使用类似这样的方式来格式化日期:

日期1.ToString/MM/yyyy HH:MM:ss

通过使用HH而不是HH,您将在小时内获得24小时格式

希望有帮助。

试试这个

 DateTime date1 = DateTime.Now;
 string datestring=date1.ToString("yyyy-MM-dd HH:mm:ss",CultureInfo.InvariantCulture)

作为猜测,您可以通过调试IDE中的变量来查看DateTime对象的返回值

这只是调试器在内部调用DateTime对象的默认ToString方法的另一种形式。值是相同的

见:

日期时间值及其字符串表示形式

在内部,所有DateTime值都表示为滴答数,即自0001年1月1日午夜12:00:00以来经过的100纳秒间隔数。实际日期时间值与该值在用户界面元素中显示或写入文件时的显示方式无关。DateTime值的外观是格式化操作的结果。格式化是将值转换为其字符串表示形式的过程

由于日期和时间值的外观取决于文化、国际标准、应用程序要求和个人偏好等因素,因此DateTime结构通过其ToString方法的重载在格式化日期和时间值方面提供了极大的灵活性。默认DateTime.ToString方法使用当前区域性的短日期和长时间模式返回日期和时间值的字符串表示形式


这就是所谓的datetime格式…这在一百万次之前就已经被问过了,这是谷歌搜索中最简单的一件事,我不希望字符串是可变的。我想要我提到的日期时间格式@BatuZetI不希望字符串可变。我要的是我提到的Datetime格式。@team16sah:没有这样的东西。DateTime值没有格式。这就像要求一个十六进制格式的int变量。您可以随意显示int值,但它不会更改该值。请注意,使用该格式,您可能希望指定不变的区域性-有关详细信息,请参阅我的答案。@JonSkeet Yes。你当然是对的。已编辑+示例。它创建了一个DateTime实例,OP已经拥有该实例。问题是关于那个实例的格式。真的吗?诚然,它没有明确说明,但是原始日期显示为9.4.2014 01:12:35,预期结果显示为2014-04-09 13:12:35`?这句话我想把它分配给另一个日期时间,或者像这样改变它的值:这让我认为他想操纵变量,而不是仅仅格式化它们。