`
dazhi2010
  • 浏览: 106703 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Flex中字符串String按照格式转化为日期Date的方法

    博客分类:
  • Flex
阅读更多

在Flex中,要通过传入时间的字符串和格式字符串的方式来转换出Date,Flex本身没有完善的方法,不知道Adobe在想什么,这么简单实用的功能都没有.(回想起来,还是java神马的好)

在网上找了好久都没有完善的解决方案,最后偶然发现DateField带着一个StringToDate的静态方法,但是只支持"年月日"的日期格式,不支持"时分秒"等的时间格式,于是对其功能进行了扩展.

闲话不多扯,下面是源代码,拿去直接可以用.

目前只扩展到了对"年月日时分秒".

ActionScript:

 

public function string2Date(valueString:String, inputFormat:String):Date
{
	var mask:String
	var temp:String;
	var dateString:String = "";
	var monthString:String = "";
	var yearString:String = "";
	var hourString:String = "";
	var minuteString:String = "";
	var secondString:String = "";
	var j:int = 0;
	
	var n:int = inputFormat.length;
	for (var i:int = 0; i < n; i++,j++)
	{
		temp = "" + valueString.charAt(j);
		mask = "" + inputFormat.charAt(i);
		
		if (mask == "M")
		{
			if (isNaN(Number(temp)) || temp == " ")
				j--;
			else
				monthString += temp;
		}
		else if (mask == "D")
		{
			if (isNaN(Number(temp)) || temp == " ")
				j--;
			else
				dateString += temp;
		}
		else if (mask == "Y")
		{
			yearString += temp;
		}
		else if(mask=="J")
		{
			if (isNaN(Number(temp)) || temp == " ")
				j--;
			else
				hourString += temp;
		}
		else if(mask=="N")
		{
			if (isNaN(Number(temp)) || temp == " ")
				j--;
			else
				minuteString += temp;
		}
		else if(mask=="S")
		{
			if (isNaN(Number(temp)) || temp == " ")
				j--;
			else
				secondString += temp;
		}
		else if (!isNaN(Number(temp)) && temp != " ")
		{
			return null;
		}
	}
	
	temp = "" + valueString.charAt(inputFormat.length - i + j);
	if (!(temp == "") && (temp != " "))
		return null;
	
	var monthNum:Number = Number(monthString);
	var dayNum:Number = Number(dateString);
	var yearNum:Number = Number(yearString);
	var hourNum:Number = Number(hourString);
	var minuteNum:Number = Number(minuteString);//如果字符串为空会转换成0
	var secondNum:Number = Number(secondString);
	if (isNaN(yearNum) || isNaN(monthNum) || isNaN(dayNum))
		return null;
	
	if (yearString.length == 2 && yearNum < 70)
		yearNum+=2000;
	
	var newDate:Date = new Date(yearNum, monthNum - 1, dayNum,hourNum,minuteNum,secondNum);
	
	if (dayNum != newDate.getDate() || (monthNum - 1) != newDate.getMonth())
		return null;
	
	return newDate;
}

 

0
1
分享到:
评论

相关推荐

    FLEX入门篇——日期的格式化

    这个类允许我们将日期对象转换为字符串,按照我们指定的格式进行显示。DateFormatter使用的是ICU(International Components for Unicode)的日期和时间模式,这些模式定义了日期和时间的显示方式。 例如,如果你想...

    日期大写的Flex实现

    在Flex中,我们可以使用内置的Date对象处理日期,然后结合字符串方法来实现大写转换。 在提供的压缩包文件"ChineseDateLowerToUpper.as"中,很可能包含了一个名为`ChineseDateLowerToUpper`的ActionScript类。这个...

    Flex实现自定义中文日期选择(mx:DateField)

    在Flex开发中,MX组件库提供了DateField控件用于显示和选择日期,但默认情况下,它的日期格式和语言通常是英文。然而,在中国的应用环境中,我们往往需要使用中文日期格式。这篇博客将指导你如何通过自定义来实现...

    flex4 dataGrid 日期格式转换

    本篇文章将深入讲解如何在Flex 4的`DataGrid`中进行日期格式转换。 首先,我们需要引入`DateFormatter`组件。`DateFormatter`是Flex提供的一个类,用于将日期对象格式化为字符串。在MXML代码中,你可以通过以下方式...

    flex api 4.0 中文帮助文档

    有时候需要将其他类型的对象转换为字符串,这部分介绍了如何使用`toString()`方法来实现这一点。 **2.5 连接字符串** 字符串的连接也是常用的操作之一,这部分介绍了如何使用`+`运算符或`concat()`方法来连接多个...

    FLEX的ASCB函数包

    在FLEX中,通常我们使用内置的Date对象来处理日期,使用String类的方法来处理字符串,而ASCB函数包则提供了一些额外的功能,比如将特定格式的字符串转换为日期对象,这在处理用户输入或解析日期数据时非常有用。...

    Flex 获取当前时间和获取当前时间减去一天的时间并且格式化为年月日时分秒的形式

    `format()`方法将Date对象转换为字符串。 通过上述步骤,我们就能在Flex中获取并格式化当前时间以及当前时间减去一天的时间。这对于开发需要展示或处理日期和时间的Flex应用来说是非常基础且实用的技能。在实际应用...

    Flex类图和与Java交互时类型转换对照

    - Java向Flex发送数据时,Java的数字类型会被转换为Flex的Number,字符串和布尔值保持不变,日期对象转换为Flex的Date,ArrayList转换为Flex的Array,Map转换为Flex的Object。 4. AMF(Action Message Format): ...

    flex json解析包(corelib.swc)

    例如,你可以使用`JSON.parse()`方法将JSON字符串转化为ActionScript的对象结构,如Array或Object,同时`JSON.stringify()`方法则可以将ActionScript对象转化为JSON格式的字符串。 ```actionscript var json...

    Flex3中用到的工具类包,含有json类

    具体到JSON处理,Flex3提供了一个名为`mx.rpc.json.util.JSONUtil`的类,该类包含了`decode`和`encode`方法,分别用于将JSON字符串转换为ActionScript对象,以及将ActionScript对象转换为JSON字符串。例如: ```...

    java 与 flex 数据转换

    - Java 中的 `String`、`Boolean`(转换为字符串形式)和 `Character`(单个字符)也可以映射回 ActionScript 的 `String`。 5. **Date**: - ActionScript 的 `Date` 类型转换为 Java 的 `java.util.Date`。 - ...

    FLEX 日期时间操作

    创建DateFormatter对象后,通过设置formatString属性来定义输出的日期时间格式,然后调用format方法将Date对象转换为字符串。这种方式类似于在其他语言中使用日期时间类库的方法。 4. 日期时间操作的不足和改进 ...

    ExtJs中处理后台传过来的date对象显示到页面上

    在ExtJs中处理后台传递的Date对象并将其正确地显示在页面上,通常...这种方法避免了在后台将Date对象转换为字符串,提高了前后端交互的效率和灵活性。同时,由于使用了专门的日期渲染器,用户界面的显示也会更加友好。

    flex_运算符.pdf

    字符串拥有多个方法,如length(获取字符串长度),concat(合并字符串),charAt(获取指定索引的字符),indexOf(查找字符首次出现的位置),split(按分隔符分割字符串),substr(截取子字符串),substring...

    ACTIONSCRIPT® 3.0开发人员指南

    - **获取其他对象的字符串表示形式:** 使用`toString()`方法将非字符串对象转换为字符串形式。 - **连接字符串:** 可以使用加号(+)操作符来连接两个或多个字符串。 - **在字符串中查找子字符串和模式:** 使用...

    java和flex数据对于关系

    | String | `java.lang.String` | 字符串类型在Java与Flex中都使用String表示,可以直接转换。 | | XML | `org.w3c.dom.Document` | Flex中的XML对象可以转换为Java中的DOM文档对象模型。 | | XMLDocument | `org.w3...

    flex builder 编译器参数

    默认值为空字符串。在部署到Web服务器时,通常需要设置此选项以匹配实际的应用程序上下文路径。 #### 9. contributor name **选项:** `contributor` **描述:** 用于设置最终SWF文件中的元数据信息。这有助于追踪...

    flex_运算符[文].pdf

    len)`截取指定长度的子串,`substring(startIndex, endIndex)`和`slice(startIndex, endIndex)`类似,用于截取字符串的一部分,`toUpperCase()`和`toLowerCase()`分别将字符串转换为大写和小写。 在数字计算方面,...

Global site tag (gtag.js) - Google Analytics