Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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# 根据时区使用DateTime.ToString()格式化日期_C#_Date_Datetime_Timezone - Fatal编程技术网

C# 根据时区使用DateTime.ToString()格式化日期

C# 根据时区使用DateTime.ToString()格式化日期,c#,date,datetime,timezone,C#,Date,Datetime,Timezone,我读了下面的问题,并能够创建一个带有时区信息的日期时间。但我需要根据时区将DateTime转换为字符串值 例如,我已将时区设置为印度标准时间并创建了日期时间,当我尝试使用ToString()而不是13/12/2019 4:00:00 PM转换为字符串时,我得到了12/13/2019 4:00 PM。由于我已将时区设置为印度标准时间,因此我希望以印度格式显示日期(dd/mm/yyyy),而不是mm/dd/yyyy 那么,如何根据C#中的时区设置日期格式 编辑:我完全理解格式和时区是不同的。但是我需

我读了下面的问题,并能够创建一个带有时区信息的日期时间。但我需要根据时区将DateTime转换为字符串值

例如,我已将时区设置为印度标准时间并创建了日期时间,当我尝试使用
ToString()
而不是
13/12/2019 4:00:00 PM
转换为字符串时,我得到了
12/13/2019 4:00 PM
。由于我已将时区设置为印度标准时间,因此我希望以印度格式显示日期
(dd/mm/yyyy)
,而不是
mm/dd/yyyy

那么,如何根据C#中的时区设置日期格式


编辑:我完全理解格式和时区是不同的。但是我需要格式化日期时间以匹配用户的地理位置,我可以使用作为输入提供的时区来识别该地理位置。

如果您只需要匹配特定区域性的
DateTime
的字符串表示,您可以使用
DateTime.ToString(IFormatProvider)
重载来指定要使用的目标区域性。日期将相应地格式化。如果要格式化日期和时间,则需要根据用户的文化而不是时区进行格式化。Kongo和德国的人共享同一时区,但他们的日期和时间格式不同

var myDate=DateTime.Now();
var myDateString=myDate.ToString(新文化信息(“fr”);
例如,将以法语格式打印日期和时间

您还可以使用自定义格式设置
DateTime

var myDate = DateTime.Now;
var myDateString = myDate.ToString("dd/MM/yyyy hh:mm");
参考文献:
-
-
-

-

时区就是时区。区域性规定了日期/时间值的格式。您的
CurrentCulture
具体是什么?你能展示你的问题吗?@SonerGönül无论当前的文化背景如何,我都需要根据用户的输入更改日期时间格式。时区将是用户的输入。我认为您基本上需要创建一个从时区ID到区域性的映射,然后使用该区域性的格式。但完全有可能存在跨越多种文化的时区,正是因为它们是不同的概念。我认为单独捕获用户的区域性会更好。在一个时区中有许多区域性,这就是为什么(datetime)格式是基于区域性(而不是时区)的