将DateTime字符串转换为c#中的特定时区DateTime

时间:2017-01-20 08:25:31

标签: c# datetime timezone

我有一个DateTime字符串,我知道它在哪个时区被格式化但在该字符串中没有任何timeZone信息。

示例:2017-01-19 23:53:57

现在这个字符串将在另一个时区的服务器中转换,我无法更改服务器的timeZone。

如果我使用DateTime.Parse("2017-01-19 23:53:57"),我会得到DateTime服务器机器的timeZone配置。

这是我的Web应用程序,服务器可以位于不同的时区。

  

我不想将孟加拉国时间转换为UTC。我只想转换   DateTime字符串,它是孟加拉国时区格式到DateTime   对象也采用孟加拉国时区格式。

2 个答案:

答案 0 :(得分:3)

这应该是你的工作,因为你明确知道该来源的时区是在孟加拉国。

var time = DateTime.Parse("2017-01-19 23:53:57");
var clientZone = TimeZoneInfo.FindSystemTimeZoneById("Bangladesh Standard Time");
var utcTime = TimeZoneInfo.ConvertTimeToUtc(time, clientZone);

答案 1 :(得分:-2)

您可以通过以下方法将2017-01-19 23:53:57格式字符串转换为日期时间。

DateTime DateConverter(string date)
    {
        string[] dateAndTimes= date.Split(' ');
        string[] dateParts = dateAndTimes[0].Split('-');
        string convertableString = dateParts[2] + "/" + dateParts[1] + "/" + dateParts[0] + " " + dateAndTimes[1];
        return Convert.ToDateTime(convertableString);
    }