gpt4 book ai didi

c# - DateTime 表示和转换显示错误的日期

转载 作者:太空宇宙 更新时间:2023-11-03 12:10:11 29 4
gpt4 key购买 nike

我正在尝试根据从请求中收到的参数创建一个新日期。

我有这个代码:

DateTime datefrom = DateTime.ParseExact(DateFromTextBox1.Text,"dd/mm/yyyy", CultureInfo.InvariantCulture).ToUniversalTime();

int hoursFrom = HourFromTextBox1.Text!=String.Empty?Convert.ToInt32(HourFromTextBox1.Text):0;

int minutesFrom = HourFromTextBox1.Text != String.Empty ? Convert.ToInt32(MinuteFromTextBox1.Text) : 0;

date1 = new DateTime(datefrom.Year, datefrom.Month, datefrom.Day, hoursFrom, minutesFrom, 0).ToString("yyyy-MM-dd HH:mm:ss");

我得到这样的东西:

2018-01-19 13:11:00

当我尝试解析的初始日期是这样的时:

"20/10/2018"

小时和分钟是正确的。但是日期和月份不是。

我认为输出是因为我电脑上的时间是这样的:2018 年 10 月 11 日。这可能是一个文化问题。

我怎样才能根据预期得到正确的日期?

最佳答案

将时间转换为世界时,结果不同。尝试将 "dd/MM/yyyy" 作为解析字符串。 "mm" 用于日期时间解析中的分钟,请参阅此文档以了解日期时间自定义格式 Custom Date and Time Format Strings

前 -

DateTime datefrom = DateTime.ParseExact("20/10/2018","dd/MM/yyyy", CultureInfo.InvariantCulture);
Console.WriteLine(datefrom); //20.10.2018 00:00:00 without universal time

DateTime datefromUniversal = DateTime.ParseExact("20/10/2018","dd/MM/yyyy", CultureInfo.InvariantCulture).ToUniversalTime();
Console.WriteLine(datefromUniversal); //19.10.2018 22:00:00 with universal time
int hoursFrom = "13"!=String.Empty?Convert.ToInt32("13"):0;

int minutesFrom = "11" != String.Empty ? Convert.ToInt32("11") : 0;

var date1 = new DateTime(datefrom.Year, datefrom.Month, datefrom.Day, hoursFrom, minutesFrom, 0).ToString("yyyy-MM-dd HH:mm:ss");
Console.WriteLine(date1);

希望现在你明白了

关于c# - DateTime 表示和转换显示错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52761384/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com