C# 根据时区使用DateTime.ToString()格式化日期
我读了下面的问题,并能够创建一个带有时区信息的日期时间。但我需要根据时区将DateTime转换为字符串值 例如,我已将时区设置为印度标准时间并创建了日期时间,当我尝试使用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#中的时区设置日期格式 编辑:我完全理解格式和时区是不同的。但是我需
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)格式是基于区域性(而不是时区)的