2017-07-27 77 views
0

日期时间分析错误发生在不在本地主机,可能是因为本地主机和服务器上的时区不同, 代码: 我想24小时时间格式为12小时(AM和PM )字符串未被识别为有效的DateTime。 :错误只在服务器

string timesx2 = hr2[0]+":" + hr2[1]; //  19:22 
string s2 = DateTime.ParseExact(timesx2, "HHmm", CultureInfo.CurrentCulture) 
    .ToString("hh:mm tt"); // output in localhost is: 7.22 PM 
+0

尝试在c#中使用FindSystemTimeZoneById并转换日期时间。 – summerGhost

+1

你用''HH:mm“'试过'ParseExact'吗? –

+0

@MykolaKovalchuk是的,先生,我厌倦了HH:MM –

回答

0

您应该使用固定区域性(如果你不需要转换到你的课程时区)

string timesx2 =hr2[0] + ":" + hr2[1]; //  19:22 
    string s2 = DateTime.ParseExact(timesx2, "HH:mm", CultureInfo.InvariantCulture).ToString("hh:mm tt", CultureInfo.InvariantCulture); // output in localhost is: 7.22 PM 

和it'l在印度文化确定。

+0

string s2 = DateTime.ParseExact(timesx2,“HH:mm”,null).ToString(“hh:mm tt”,CultureInfo。 InvariantCulture的);我也尝试这一个 –

+0

相同的问题也会发生,而我转换12小时至24小时**的DateTime StartTimein12 = Convert.ToDateTime(StartTimes [0] .StartTime [I]); string CovertedTime =(StartTimein12.ToString(“HH:mm”)); StartTimeDB = StartDates [0] .StartDate [I] + “” + CovertedTime; ** –

+0

你试图前缀日期到串并解析它? 'string timesx2 =“2017-01-01”+ hr2 [0] +“:”+ hr2 [1]; // 19:22 string s2 = DateTime.ParseExact(timesx2,“yyyy-MM-dd HH:mm”,CultureInfo.CurrentCulture) .ToString(“hh:mm tt”); //在localhost中输出的是:7.22 PM' –

0

您解析字符串缺少一个冒号。

当您尝试解析由HHmm组成的字符串时,您组成的时间字符串格式为HH:mm。这是行不通的。

如果您希望发生单位数小时,还要从输出格式字符串中删除第二个h。否则,输出将是07:22 PM。

string timesx2 = hr2[0]+":" + hr2[1]; //  19:22 
string s2 = DateTime.ParseExact(timesx2, "HH:mm", CultureInfo.InvariantCulture) 
    .ToString("h:mm tt"); // output in localhost is: 7:22 PM 
+0

我两种方式尝试仍然不能 –

+0

你确认你的数组包含正确格式的值?例如数组中的值确实有2个数字字符,并且它们分别在小时和分钟的时间范围内?因为这个代码在我运行的时候可以工作。 – Adwaenyth

0

大写“H”表示24小时的时间和小写的“h”表示 12小时时间,尊重在候选字符串中的AM/PM。

DateTime.ParseExact("3/21/2015 8:56:04 AM", "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture) 
0

将您的本地时间为UTC时间

DateTime utcTime = TimeZoneInfo.ConvertTimeToUtc(localDatetime); //Convert sent datetime to UTC. 

获得从区域名称时区信息。获取区域名称here

TimeZoneInfo zoneInfo = TimeZoneInfo.FindSystemTimeZoneById(zoneName); 
DateTime finalDatetime = TimeZoneInfo.ConvertTime(utcTime, zoneInfo); 
相关问题