Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 如何使用Flex/AS3获取浏览器时区?_Apache Flex_Actionscript 3_Timezone - Fatal编程技术网

Apache flex 如何使用Flex/AS3获取浏览器时区?

Apache flex 如何使用Flex/AS3获取浏览器时区?,apache-flex,actionscript-3,timezone,Apache Flex,Actionscript 3,Timezone,如何在Flex/AS3中获取客户端浏览器的时区?能否使用日期对象的名称 老实说,我相信这只是根据用户的操作系统设置传回信息。我没想到bBrowser会有一个时区 我一直想要同样的东西,但我在网上什么也没找到。我已经在使用(),但它只将时区格式化为“GMT-600”。幸运的是,我可以放心地说,我的应用程序的用户将在美国,因此我修改为“DateUtils.buildTimeZoneDesignation(date:date)”,如下所示。我希望这有帮助 private static func

如何在Flex/AS3中获取客户端浏览器的时区?

能否使用日期对象的名称


老实说,我相信这只是根据用户的操作系统设置传回信息。我没想到bBrowser会有一个时区

我一直想要同样的东西,但我在网上什么也没找到。我已经在使用(),但它只将时区格式化为“GMT-600”。幸运的是,我可以放心地说,我的应用程序的用户将在美国,因此我修改为“DateUtils.buildTimeZoneDesignation(date:date)”,如下所示。我希望这有帮助

    private static function buildTimeZoneDesignation( date:Date ):String {
        if ( !date ) {
            return "";
        }
        var timezoneOffsetHours:Number = date.getTimezoneOffset() / 60;

        // custom timezone handlers (assumes major U.S. zones with daylight savings time dates as of 2011)
        if (3 < timezoneOffsetHours && timezoneOffsetHours < 12)
        {
            var usDST:Boolean = false;
            // the date of the Sunday before today unless today is Sunday
            var sundayBeforeToday:Number = date.date - date.day;
            if (2007 <= date.fullYear) {
                // test for since-2007 extended daylight savings time
                if (2 < date.month && date.month < 10) {
                    // daylight savings time (April through October)
                    usDST = true;
                }
                else if (date.month == 2) {
                    // DST starts second Sunday in March
                    usDST = (7 < sundayBeforeToday);
                }
                else if (date.month == 10) {
                    // DST ends first Sunday in November
                    usDST = (0 < sundayBeforeToday);
                }
            }
            else {
                // test for pre-2007 daylight savings time
                if (3 < date.month && date.month < 9) {
                    // daylight savings time (May through September)
                    usDST = true;
                }
                else if (date.month == 3) {
                    // DST starts first Sunday in April
                    usDST = (0 < sundayBeforeToday);
                }
                else if (date.month == 9) {
                    // DST ends last Sunday in October
                    usDST = (sundayBeforeToday + 7 <= 31);
                }
            }
            // return custom timezone strings for US timezones
            switch (timezoneOffsetHours) {
                case 4:
                    // Eastern or Atlantic
                    return usDST ? "EDT" : "AST";
                case 5:
                    // Central or Eastern
                    return usDST ? "CDT" : "EST";
                case 6:
                    // Mountain or Central
                    return usDST ? "MDT" : "CST";
                case 7:
                    // Pacific or Mountain
                    return usDST ? "PDT" : "MST";
                case 8:
                    // Alaska or Pacific
                    return usDST ? "AKDT" : "PST";
                case 9:
                    // Hawaii or Alaska
                    return usDST ? "HADT" : "AKST";
                case 10:
                    // Samoa or Hawaii
                    return usDST ? "SDT" : "HAST";
                case 11:
                    if (!usDST)
                        // Samoa
                        return "SST";
                    break;
            }
        }

        // else just generate a GMT string

        var timeZoneAsString:String = "GMT ";
        // timezoneoffset is the number that needs to be added to the local time to get to GMT, so
        // a positive number would actually be GMT -X hours
        if ( 0 < timezoneOffsetHours && timezoneOffsetHours < 10 ) {
            timeZoneAsString += "-0" + ( timezoneOffsetHours ).toString();
        } else if ( date.getTimezoneOffset() < 0 && timezoneOffsetHours > -10 ) {
            timeZoneAsString += "0" + ( -1 * timezoneOffsetHours ).toString();
        }
        // add zeros to match standard format
        timeZoneAsString += "00";

        return timeZoneAsString;
    }
私有静态函数buildTimeZoneDesignation(日期:date):字符串{
如果(!日期){
返回“”;
}
var timezoneOffsetHours:Number=date.getTimezoneOffset()/60;
//自定义时区处理程序(假设美国主要时区自2011年起采用夏令时)
如果(3如果(2007),请查看以下内容:


这可能会有帮助。

是的,我可以使用时区偏移。但是我正在寻找一些功能/库,可以将GMT-5显示为EST等@Satish,所以您正在寻找一种格式化数据的方法?这在您最初的问题中并不明显。是的,正是为了格式化日期以在其中显示时区信息。我正在寻找可以渲染的AS3库r GMT-5作为东部标准时间等-on@Satish他们要么修改原始问题,要么发布新问题。此问题与“呈现”或格式化数据的方式无关。这不完全正确。GMT-0500与EST.GMT+/-[HHMM]不同是指定的GMT偏移量,这是表示用户时区的糟糕方法,因为EST可以是GMT-0400或GMT-0500,具体取决于夏令时。问题仍然有效,您如何获得配置的操作系统时区,而不是当前偏移量,这只会有帮助,但不是全部。链接已断开…:(