我正在努力解决问题。我有一个字符串日期," 2015-05-02 01:00:00",从数据库中提取。
我知道这是英国时间,但我的当地时间是比利时时间。 我试图将日期存储在UTC和(CEST或CET取决于季节),将其从英国时间提取出来。
我尝试将Kind属性设置为英国时间,但结果似乎是在本地或utc时间。所以,我可以做一半的工作,但不能完成剩下的工作(例如我仍然需要CEST / CET时间)。
我试着用这个:
string dateString = (string) line["stringDate"];
DateTime ukTime = DateTime.Parse(dateString, new CultureInfo("en-GB", false));
DateTime belgianTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(ukTime, "Romance Standard Time");
ukTime和belgianTime的结果相同:2015-05-02 01:00:00,种类=未指定。
belgianTime应该是2015-05-02 02:00:00
答案 0 :(得分:1)
如果您只是将源时区添加到转化方法,它会提供所需的答案,即使不指定IFormatProvider
。
string dateString = (string) line["stringDate"];
DateTime ukTime = DateTime.Parse(dateString);
DateTime belgianTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(ukTime,
"GMT Standard Time",
"Romance Standard Time");
这给出了时间Kind == Unspecified
。但是,如果您使用:
var belgianTime = TimeZoneInfo.ConvertTime(ukTime,
TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time"),
TimeZoneInfo.Local);
对于转化,您获得Kind == Local
答案 1 :(得分:0)
使用以下代码行。
echo "The HTML page title is: ...";
答案 2 :(得分:0)
您必须使用ConvertTime
方法。 ConvertTime
快速样本 -
string s = "2015-05-02 01:00:00";
var dt = new DateTime(2015, 05, 02, 1, 0, 0);
var t = TimeZoneInfo.ConvertTime(dt, TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time"),
TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time"));