代码之家  ›  专栏  ›  技术社区  ›  Sietse

如何在Flash中格式化日期?

  •  8
  • Sietse  · 技术社区  · 15 年前

    我可能忽略了一些东西,但Flash/AS3似乎缺少基本的日期格式化功能。如何从 Date ? 有几个选择像 .toLocaleDateString() .toUTCString()

    那么,如何格式化 日期 AS3中的对象?

    5 回复  |  直到 15 年前
        1
  •  29
  •   T Graham    13 年前

    import flash.globalization.DateTimeFormatter;
    
    var d:Date = new Date();
    var dtf:DateTimeFormatter = new DateTimeFormatter("en-US");
    dtf.setDateTimePattern("yyyy-MM-dd 'at' hh:mm:ssa");
    trace(dtf.format(d)); 
    
    // 2012-06-06 at 09:58:46PM
    
        2
  •  2
  •   Guillaume Malartre    15 年前

        public static function getDateIso8601Long(date:Date):String {
            var str:String = date.getFullYear().toString()
            str = str +"-"+ ((String((date.getMonth()+1)).length == 1)?"0"+(date.getMonth()+1):(date.getMonth()+1)).toString()
            str = str +"-"+ ((date.getDate().toString().length == 1)?"0"+date.getDate():date.getDate()).toString()
            str = str +"T"+ ((date.getHours().toString().length == 1)?"0"+date.getHours():date.getHours()).toString()
            str = str +":"+ ((date.getMinutes().toString().length == 1)?"0"+date.getMinutes():date.getMinutes()).toString()
            str = str +":"+ ((date.getSeconds().toString().length == 1)?"0"+date.getSeconds():date.getSeconds()).toString()
            var ms:String = date.getMilliseconds().toString()
            while (ms.length < 3)
                ms = "0"+ms
            str = str+"."+ms
            var offsetMinute:Number = date.getTimezoneOffset()
            var direction:Number = (offsetMinute<0)?1:-1
            var offsetHour:Number = Math.floor(offsetMinute/60)
            offsetMinute = offsetMinute-(offsetHour*60)
    
            var offsetHourStr:String = offsetHour.toString()
            while (offsetHourStr.length < 2)
                offsetHourStr = "0"+offsetHourStr
            var offsetMinuteStr:String = offsetMinute.toString()
            while (offsetMinuteStr.length < 2)
                offsetMinuteStr = "0"+offsetMinuteStr
            str = str+((direction == -1)?"-":"+")+offsetHourStr+":"+offsetMinuteStr
            return str 
        } 
    
        3
  •  1
  •   DannyC    15 年前

    不幸的是,我不认为你忽视了当地人的支持。有 this project 这似乎提供了更多的灵活性,但我从来没有时间与它在任何深度的工作,所以我不能保证它。因此,我目前正在处理的项目有一个500行(正在计数)的DateUtil类。。

        4
  •  1
  •   Eric Smith    15 年前

    mx.formatters.DateFormatter 等级(参见 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/formatters/DateFormatter.html formatString 自定义格式的属性。你可以打电话给我 format ,提供获取字符串的日期。

        5
  •  0
  •   Ryan Williams    13 年前
    private static function getTime():String
    {
        const d = '.';
        const e = '';
        const s = ':';
    
        var date:Date = new Date();
        return e.concat(pad(date.hours, 2), s, 
                        pad(date.minutes, 2), s, 
                        pad(date.seconds, 2), d, 
                        pad(date.milliseconds, 3));
    
        function pad(value:String, length:int):String
        {
            const zero = '0';
            var result:String = value;
            while (result.length < length)
            {
                result = zero.concat(result);
            }
            return result;
        }
    }