2010-06-28 9 views
7

पर स्ट्रिंग करने के लिए मुझे अपने डेटाबेस की तिथि मिलती है और मुझे इसे स्ट्रिंग के रूप में दिखाने की आवश्यकता है। तो फ्लेक्स में मैं यह कर:स्ट्रिंग करने की तारीख <->

public static function dateToString(cDate:Date):String { 
     return cDate.date.toString()+"."+ 
      cDate.month.toString()+"."+ 
      cDate.fullYear.toString()+" "+ 
      cDate.hours.toString()+":"+ 
      cDate.minutes.toString()+":"+ 
      cDate.seconds.toString(); 
} 

लेकिन मैं उदाहरण के लिए परिणाम मिलता है:

2010/07/13 0: 0: 15

मैं दिन, महीने, घंटे कैसे भर सकते हैं, मिनट, सेकंड गद्देदार 0 के साथ?

और, मैं के साथ आज तक स्ट्रिंग से वापस जाने के लिए:

DateField.stringToDate(myTextInput.text, "DD.MM.YYYY HH:MM:SS"); 

यह सही है? मैं एक तिथि चाहता हूं जिसे मैं BlazeDS के माध्यम से एक जे 2 ईई बैकएंड में स्थानांतरित कर दूंगा, लेकिन मैं केवल डेटाबेस में एक शून्य मान देखता हूं। तो कुछ गलत हो रहा है ...

सर्वश्रेष्ठ सादर।

उत्तर

19

क्या आपने DateFormatter कक्षा देखी है?

उदाहरण:

import mx.formatters.DateFormatter; 

private var dateFormatter:DateFormatter; 

private function init():void 
{ 
    dateFormatter = new DateFormatter(); 
    dateFormatter.formatString = 'DD.MM.YYYY HH:NN:SS' 
} 

public function dateToString(d:Date):String 
{ 
    return dateFormatter.format(d); 
} 

public function stringToDate(s:String):Date 
{ 
    return dateFormatter.parseDateString(s); 
} 

ऐसा लगता है कि किसी को, दिन लिखा था फ्लेक्स 3.2 सो रही थी क्योंकि DateFormatter::parseDateString एक संरक्षित कार्य है। ऐसा लगता है कि उन्होंने 3.5 तक तय किया है।

+2

विधि स्ट्रिंगटॉडेट काम नहीं करता है, क्योंकि यह एक संरक्षित विधि है। मैं फ्लेक्स 4 का उपयोग कर रहा हूं। – Tim

+0

为什么 फ्लैश सीएस 4 中 会 报错, 提示 找不到 定义 mx.formatters.DateFormatter –

+0

'parseDateString()' प्रारूप स्ट्रिंग को स्वीकार नहीं करता है और न ही सम्मान करता है, इसलिए स्ट्रिंग अगर यह मौका हो सकता है सही ढंग से परिवर्तित किया गया है। – splash

5

आप स्ट्रिंग टू डेट को DateFormatter::parseDateString के साथ परिवर्तित कर सकते हैं, लेकिन यह विधि सुरक्षित है (?)।

import mx.formatters.DateFormatter; 

public class DateFormatterWrapper extends DateFormatter 
{ 
    public function DateFormatterWrapper() 
    { 
     super(); 
    } 

    public function parseDate(str:String):Date 
    { 
     return parseDateString(str); 
    }  
} 
+0

उत्कृष्ट साथी का उपयोग कर सकते हैं। :) –

7

क्योंकि stringToDate समारोह ऊपर जवाब पर काम नहीं करता है और सरल आवरण आप इनपुट स्ट्रिंग प्रारूप निर्दिष्ट करने के लिए अनुमति नहीं है मैं इस जोड़ रहा: विधि DateFormatter::parseDateString सिर्फ एक सरल आवरण लिखने तक पहुंचने के लिए। फ़ंक्शन वास्तव में अब आवश्यक नहीं है क्योंकि फ़ंक्शन अब स्थिर है, लेकिन आपके पास अभी भी एक ही समस्या है। मैं डेटफिल्ड कक्षा से निम्नलिखित स्थिर फ़ंक्शन का उपयोग करने की बजाय अनुशंसा करता हूं।

//myObject.CreatedDate = "10022008" 

var d:Date = DateField.stringToDate(myObject.CreatedDate, "MMDDYYYY"); 
संबंधित मुद्दे