Windows phone 7 将DateTime转换为其他时区

Windows phone 7 将DateTime转换为其他时区,windows-phone-7,windows-phone-8,Windows Phone 7,Windows Phone 8,如何将DateTime.Now返回的本地时区中的DateTime转换为Utc以外的其他时区。在桌面上,我们有TimeZoneInfo.ConvertTimeBySystemTimeZoneId(),但它在windows phone上不可用 这个java代码片段粗略地展示了我想要做的事情 使用系统库无法做到这一点,因为除了本地和utc之外,无法创建TimeZoneInfo对象。他们也有这个班 但是,您可以使用这个简单的库来启用到非本地时区的转换。 像这样使用它: public String g

如何将
DateTime.Now
返回的本地时区中的
DateTime
转换为Utc以外的其他时区。在桌面上,我们有
TimeZoneInfo.ConvertTimeBySystemTimeZoneId()
,但它在windows phone上不可用

这个java代码片段粗略地展示了我想要做的事情


使用系统库无法做到这一点,因为除了本地和utc之外,无法创建
TimeZoneInfo
对象。他们也有这个班

但是,您可以使用这个简单的库来启用到非本地时区的转换。

像这样使用它:

public String getNationTime(String Zone)
    {
        DateTime todayutc = DateTime.UtcNow;
        string todaydate = todayutc.ToShortDateString();
        string todaytime = todayutc.TimeOfDay.ToString().Split('.')[0];
        Zone = Zone.Replace("GMT", "");
        if (Zone.Length == 0)
            return todaytime;

        int zoneHour = int.Parse(Zone.Split(':')[0]);
        int zoneMin = int.Parse(Zone.Split(':')[1]);

        TimeSpan diff = new TimeSpan(zoneHour, zoneMin, 00);
        todayutc = todayutc.Add(diff);

        return todayutc.TimeOfDay.ToString().Split('.')[0];
    }
使用时区;
公共时间()
{
//得到我们想要的时区
var tz=TimeZoneService.FindSystemTimeZoneById(“中央标准时间”);
var dt=新的日期时间(1990,7,1,12,0,0,DateTimeKind.Utc);
//这次将是中央时间
var local=tz.转换时间(dt);
}

转换
日期时间
时,根据需要对其进行格式化是一个简单的练习。我建议以本地格式(而不是本地时区)设置日期格式,以便于用户理解日期。

使用系统库无法做到这一点,因为无法创建本地和utc以外的
TimeZoneInfo
对象。他们也有这个班

但是,您可以使用这个简单的库来启用到非本地时区的转换。

像这样使用它:

public String getNationTime(String Zone)
    {
        DateTime todayutc = DateTime.UtcNow;
        string todaydate = todayutc.ToShortDateString();
        string todaytime = todayutc.TimeOfDay.ToString().Split('.')[0];
        Zone = Zone.Replace("GMT", "");
        if (Zone.Length == 0)
            return todaytime;

        int zoneHour = int.Parse(Zone.Split(':')[0]);
        int zoneMin = int.Parse(Zone.Split(':')[1]);

        TimeSpan diff = new TimeSpan(zoneHour, zoneMin, 00);
        todayutc = todayutc.Add(diff);

        return todayutc.TimeOfDay.ToString().Split('.')[0];
    }
使用时区;
公共时间()
{
//得到我们想要的时区
var tz=TimeZoneService.FindSystemTimeZoneById(“中央标准时间”);
var dt=新的日期时间(1990,7,1,12,0,0,DateTimeKind.Utc);
//这次将是中央时间
var local=tz.转换时间(dt);
}
转换
日期时间
时,根据需要对其进行格式化是一个简单的练习。我建议将日期设置为本地格式(而不是本地时区),以便于用户理解日期。

如下使用:

public String getNationTime(String Zone)
    {
        DateTime todayutc = DateTime.UtcNow;
        string todaydate = todayutc.ToShortDateString();
        string todaytime = todayutc.TimeOfDay.ToString().Split('.')[0];
        Zone = Zone.Replace("GMT", "");
        if (Zone.Length == 0)
            return todaytime;

        int zoneHour = int.Parse(Zone.Split(':')[0]);
        int zoneMin = int.Parse(Zone.Split(':')[1]);

        TimeSpan diff = new TimeSpan(zoneHour, zoneMin, 00);
        todayutc = todayutc.Add(diff);

        return todayutc.TimeOfDay.ToString().Split('.')[0];
    }
像这样使用它:

public String getNationTime(String Zone)
    {
        DateTime todayutc = DateTime.UtcNow;
        string todaydate = todayutc.ToShortDateString();
        string todaytime = todayutc.TimeOfDay.ToString().Split('.')[0];
        Zone = Zone.Replace("GMT", "");
        if (Zone.Length == 0)
            return todaytime;

        int zoneHour = int.Parse(Zone.Split(':')[0]);
        int zoneMin = int.Parse(Zone.Split(':')[1]);

        TimeSpan diff = new TimeSpan(zoneHour, zoneMin, 00);
        todayutc = todayutc.Add(diff);

        return todayutc.TimeOfDay.ToString().Split('.')[0];
    }

我已经添加了这个nuget,但它不适用于“任何CPU”平台配置。但是它单独适用于ARM和x86平台。@KdSingh我个人正在开发库,请与库的维护人员联系。关于这个问题,我添加了这个nuget,但它不适用于“任何CPU”平台配置。但是它单独适用于ARM和x86平台。@KdSingh我个人正在开发该库,请与库的维护人员联系以解决此问题