C#将字符串转换为日期时间'2017-08-18 06:00:00 IST'至'2017年7月28日星期五/ 06:00:00 IST'

时间:2017-10-08 07:01:08

标签: c#

我有DateTime格式字符串'2017-08-18 06:00:00 IST'我要转换为'星期五2017年8月18日/ 06:00:00 IST'

请帮助我。

提前致谢。

1 个答案:

答案 0 :(得分:0)

DateTime转换为String

我不确切地说明您是否打算string --> DateTime --> string ...但是以下解决方案会执行DateTimestring,并获得所需的帮助输出:

// set a date in UTC format
DateTime dateUtc = new DateTime(2017, 08, 18, 06, 00, 00).ToUniversalTime();

// convert the UTC date to the IST time zone
DateTime dateIST = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(dateUtc, "UTC", "India Standard Time");
string timeZoneText = "IST";

// the string you want
string result = String.Format("{0:ddd d}{1} {0:MMM yyyy / HH:mm:ss} {2}", dateIST,
    (DateTime.Now.Day % 10 == 1 && DateTime.Now.Day != 11) ? "st"
    : (DateTime.Now.Day % 10 == 2 && DateTime.Now.Day != 12) ? "nd"
    : (DateTime.Now.Day % 10 == 3 && DateTime.Now.Day != 13) ? "rd"
    : "th", timeZoneText);

这里的关键是字符串格式

{0:ddd d}{1} {0:MMM yyyy / HH:mm:ss} {2}

// 0 = DateTime (converted to your time zone, ex: IST)
// 1 = the "1st", "2nd", "3rd", "#th"
// 2 = "IST"

这将导致: 2017年8月18日星期五/ 06:00:00 IST