CloudStack中云主机的UTC时间转为本地时间

CloudStack项目中使用的时间是UTC时间,具体什么是UTC时间大家可以百度,但是我们需要的时间是正常的时间,所以在国泰君安开发测试云中,同步资源管理中虚拟机的同步管理,需要对虚拟机的时间格式化进行转换。工具类如下,关键是时间格式的问题,时间格式为yyyy-MM-dd‘T‘HH:mm:ss+SSSS。

public static Date utc2LocalDate(String utcTime) {
        String utcTimePatten = "yyyy-MM-dd‘T‘HH:mm:ss+SSSS";
        SimpleDateFormat sdf = new SimpleDateFormat(utcTimePatten);
        Date dt = null;
        try {
            dt = sdf.parse(utcTime);
        }
        catch (ParseException e) {
            e.printStackTrace();
        }

return dt;
    }

测试类:

public class TestUtcTime {

/**
     *  
     * @param args
     * @return void
     */

public static void main(String[] args) {
        String ts = "2015-04-22T15:58:54+0800";
        Date date = new Date();
        System.out.println(date);
        System.out.println(DateUtil.utc2LocalDate(ts));

}

}

另外的方法如下:

public class TestUtc {
    public static void main(String args[]) {
        try {
            String ts = "2015-04-22T15:58:54+0800";
            System.out.println("ts = " + ts);
            ts = ts.replace("Z", " UTC");
            System.out.println("ts = " + ts);
            SimpleDateFormat sdf = new SimpleDateFormat(
                    "yyyy-MM-dd‘T‘HH:mm:ss+SSSS");

Date dt = sdf.parse(ts);

TimeZone tz = sdf.getTimeZone();
            Calendar c = sdf.getCalendar();
            System.out.println("Display name: " + tz.getDisplayName());
            System.out.println(getString(c));
        }
        catch (ParseException pe) {
            System.out.println("Error offset: " + pe.getErrorOffset());
            pe.printStackTrace();
        }
    }

private static String getString(Calendar c) {
        StringBuffer result = new StringBuffer();
        result.append(c.get(Calendar.YEAR));
        result.append("-");
        result.append((c.get(Calendar.MONTH) + 1));
        result.append("-");
        result.append(c.get(Calendar.DAY_OF_MONTH));
        result.append(" ");
        result.append(c.get(Calendar.HOUR_OF_DAY));
        result.append(":");
        result.append(c.get(Calendar.MINUTE));
        result.append(":");
        result.append(c.get(Calendar.SECOND));
        return result.toString();
    }

}

转载请注明:http://www.xujin.org

时间: 2024-07-30 10:17:20

CloudStack中云主机的UTC时间转为本地时间的相关文章

将UTC日期字符串转为本地时间字符串,如@"yyyy-MM-dd'T'HH:mm:ssZ"转换为本地时间

由于苹果商店上线应用24小时内会不稳定,更新提醒可能会陷入死循环,更新提醒需要24小时后弹出,需要把苹果返回的上线时间转换为本地时间故写了下边的方法: //将UTC日期字符串转为本地时间字符串//输入的UTC日期格式2013-08-03T04:53:51+0000-(NSString *)getLocalDateFormateUTCDate:(NSString *)utcDate{    NSDateFormatter *dateFormatter = [[NSDateFormatter all

Python中如何把一个UTC时间转换为本地时间

需求: 将20141126010101格式UTC时间转换为本地时间. 在网上搜了好长时间都没有找到完美的解决方案.有的引用了第三方库,这就需要在现网安装第三方的软件.这个是万万不可的.因为真实环境不一定允许你随便使用root用户安装Python模块.最终找到了一个不用外部模块的完美解决方案,放在这里分享给大家. 1 #!/usr/bin/python 2 3 import os,sys,datetime,time 4 from datetime import datetime 5 import

Linux UTC时间与本地时间

因为维护的机器有欧洲,有越南,有泰国,有北美,有台湾,有大陆的机器. 但有个脚本需要告警, 告警的时间都要统一为大陆的时间. UTC时间与本地时间 UTC + 时区差 = 本地时间 时区差东为正,西为负.在此,把东八区时区差记为 +0800 UTC + (+0800) = 本地(北京)时间 统一时间, 将时间都转换为UTC,之后加8小时. date -u -d"+8 hour" now=`date -u -d"+8 hour" +'%Y-%m-%d %H:%M:%S

UTC、GTC时间和本地时间

1.问题 对于装有Windows和Linux系统的机器,进入Windows显示的时间和Linux不一致,Linux中的时间比Windows提前8个小时. 2.解决方法 修改/etc/default/rcS,设置不使用UTC时间,设置如下:UTC=no 3.解释 这个是一个关于时间的问题,我们就先来了解一下关于时间的概念 UTC(Universal Time Coordinated):协调世界时GMT(Greenwich Mean Time):格林威治时间本地时间(local time):全球二十

UTC时间转换为本地时间

UTC时间转换为本地时间DATEADD(hour, DATEDIFF(hour,GETUTCDATE(),GETDATE()), OrderDate) <'2015-02-02' DECLARE @LocalDate DATETIME, @UTCDate DATETIME, @LocalDate2 DATETIME SET @LocalDate = GETDATE() SET @UTCDate = DATEADD(hour, DATEDIFF(hour,GETDATE(),GETUTCDATE(

关于UTC时间和本地时间

收藏了个类Publics  可以实现本地时间和UTC时间的转换 UCT时间=本地时间-8    本地时间比UTC时间快8小时 element-ui的日期选择器上  选择的时间显示的是本地时间   但实际值是UTC时间传到后端 这时候 时间的类型是UTC时间 在实体中  要调用转成UTC时间的方法(自动计算时差) 从实体中获取数据的时候  时间是datetime格式   所以 调用 时间刻度不变  把时间类型转成UTC时间 这时候时间的类型是UTC类型了   但时间的值还是从数据库中取出来的值 

C#同步网络时间和本地时间的代码

做工程过程,将做工程过程经常用的内容做个收藏,下面内容内容是关于 C#同步网络时间和本地时间的内容,希望对各位朋友有较大用途. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Net; using System.Net.Sockets; using System.Text.RegularExpressions; u

UTC时间和本地时间的区别

在用AS3的Date时,年月日都有两个api,带UTC和不带UTC的,比如fullYear,fullYearUTC 输出看一下: var date:Date = new Date; trace(date.fullYear, date.month + 1, date.date, date.hours, date.minutes, date.milliseconds); trace(date.fullYearUTC, date.monthUTC + 1, date.dateUTC, date.hou

UTC时间与本地时间的相互转换

//把UTC时间转换成北京时间 DateTime now = DateTime.Parse(DateTime.UtcNow.ToString(), new CultureInfo("zh-CN"), System.Globalization.DateTimeStyles.AssumeUniversal); //把北京时间转换成UTC时间 DateTime nowUTC = now.ToUniversalTime();