using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//美国时间
string date = "05:17:46 Jun 20, 2016 PDT";
string[] dts = date.Split(',');
string year = dts[1].Substring(0, 5);
//两种方法截取时间
string newdate = dts[0] + year;
//string newdate = date.Remove(21);
DateTime dt = Convert.ToDateTime(newdate);
DateTime dt2 = PSTConvertToGMT(dt);
if (date.Contains("PDT"))
{
//PDT 比PST早一个小时
dt2 = dt2.AddHours(-1);
}
string str = dt2.ToString("yyyy-MM-dd hh:mm:ss");
Console.WriteLine(str);
}
/// <summary>
/// 转化PST时间为GMT(也就是UTC时间)
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
private static DateTime PSTConvertToGMT(DateTime dateTime)
{
TimeZoneInfo timeZoneSource = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
TimeZoneInfo timeZoneDestination = TimeZoneInfo.FindSystemTimeZoneById("UTC");
return TimeZoneInfo.ConvertTime(dateTime, timeZoneSource, timeZoneDestination);
}
/// <summary>
/// 转化UTC时间为PST时间
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
private static DateTime ConvertToPST(DateTime dateTime)
{
return System.TimeZoneInfo.ConvertTimeBySystemTimeZoneId(dateTime, "Pacific Standard Time");
}
/// <summary>
/// 转化PST时间为UTC时间
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
private static DateTime PSTConvertToUTC(DateTime dateTime)
{
return TimeZoneInfo.ConvertTimeToUtc(dateTime, TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"));
}
}
}