2012-09-19 15 views
10

मेरे ऐप में, मैं टेक्स्ट व्यू में 07:00 बजे के रूप में समय दिखा रहा हूं। टेक्स्ट व्यू के क्लिक पर, एक समय पिकर संवाद पॉप अप करता है। उस समय पिकर में, मुझे टेक्स्टव्यू में जो दिख रहा है, वही समय दिखाना होगा। लेकिन, मुझे यह नहीं मिल रहा है कि यह कैसे करें।एंड्रॉइड: टेक्स्ट व्यू में दिखाए गए समय के साथ समय पिकर में समय सेट करना

कोड

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a"); 
     //int hr = 0; 
     Date date = null; 
     try 
     { 
      date = sdf.parse(resDateArray[3]); 
     } 
     catch (ParseException e) { 
      e.printStackTrace(); 
     } 
     final Calendar calendar = Calendar.getInstance(); 
     calendar.setTime(date); 
     //tp is reference variable for time picker 

     tp.setCurrentHour(calendar.get(Calendar.HOUR)); 
     tp.setCurrentMinute(calendar.get(Calendar.MINUTE)); 

     }//else 
+0

इस लिंक का उल्लेख http://www.mkyong.com/android/android-time-picker-example/ – rajeshwaran

उत्तर

24

आप एक SimpleDateFormat का उपयोग अपने String से एक Date वस्तु प्राप्त करने के लिए करना चाहिए। तो बस फोन

picker.setCurrentHour(date.getHours()) 

और

picker.setCurrentMinute(date.getMinutes()) 

के बाद से Date वस्तु हटा दिया गया है, तो आप इसे करने के बजाय एक Calendar उपयोग करना चाहिए।

Calendar c = Calendar.getInstance(); 
c.setTime(date); 
picker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY)); 
picker.setCurrentMinute(c.get(Calendat.MINUTE)); 

संपादित करें:: आप एक Calendar कि जिस तरह से दृष्टांत कर सकते हैं पूरा कोड

 SimpleDateFormat sdf = new SimpleDateFormat("hh:ss"); 
     Date date = null; 
     try { 
      date = sdf.parse("07:00"); 
     } catch (ParseException e) { 
     } 
     Calendar c = Calendar.getInstance(); 
     c.setTime(date); 

     TimePicker picker = new TimePicker(getApplicationContext()); 
     picker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY)); 
     picker.setCurrentMinute(c.get(Calendar.MINUTE)); 
+0

क्या ऐसा हुआ, लेकिन मैं जो समय दिखा रहा हूं वह प्रधान मंत्री है। तो, एएम/पीएम में समय कैसे दिखा सकता है? – Nitish

+1

SimpleDateFormat के साथ, आप एक प्रारूप स्ट्रिंग का उपयोग कर सकते हैं जो "AM/PM" दिनांक प्रारूप का उपयोग करने की अनुमति देता है। पसंद: SimpleDateFormat sdf = नया SimpleDateFormat ("hh: ss a"); दिनांक = sdf.parse ("07:00 पूर्वाह्न"); फिर कैलेंडैट के बजाय कैलेंडर का उपयोग करें। AM/PM घंटे प्रारूप प्राप्त करने के लिए HOUR_OF_DAY – abecker

+0

कोशिश की गई, लेकिन यह 07:00 अपराह्न – Nitish

0

के लिए AM/PM आप उसके लिए एक तर्क लागू करने के लिए है और वह नीचे के रूप में .. तो आप कर सकते हैं है किसी को भी निम्न स्वरूप timepicker विजेट इस एक का उपयोग करें का उपयोग किए बिना है कि का उपयोग कर ..आउटपुट प्राप्त के रूप में आप का उल्लेख किया ... बस नीचे दिए गए कोड की कोशिश ...

int hr=tp.getCurrentHour(); 
String a="AM"; 
if(hr>=12){ 
    hr=hr-12; 
    a="PM"; 
} 
String tm=hr+":"+tp.getCurrentMinute()+" "+a; 

Toast.makeText(MainActivity.this, tm, 500).show(); 
+0

लेकिन, मैं समय पिकर – Nitish

+0

में एएम/पीएम कैसे जोड़ सकता हूं यह सेटिंग "सेटिंग्स" पर निर्भर करता है ... सेटिंग में दिनांक और समय पर जाएं ... उसके बाद "24-घंटे प्रारूप का उपयोग करें" विकल्प है। .. इसे अनचेक करें और मोबाइल को पुनरारंभ करें और ऐप को पुनर्स्थापित करें ... –

4
mStartTime.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      new TimePickerDialog(AddAppointmentActivity.this, onStartTimeListener, calendar 
        .get(Calendar.HOUR), calendar.get(Calendar.MINUTE), false).show(); 

     } 
    }); 

TimePickerDialog.OnTimeSetListener onStartTimeListener = new OnTimeSetListener() { 

    public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
     String AM_PM; 
     int am_pm; 

     mStartTime.setText(hourOfDay + " : " + minute + " " + AM_PM); 
     calendar.set(Calendar.HOUR, hourOfDay); 
     calendar.set(Calendar.MINUTE, minute); 

    } 
}; 
+0

AM_PM प्रारंभ नहीं हुआ है। – Apurva

+0

@Apurva समय श्रोता के अंदर देखें 'स्ट्रिंग AM_PM; ' – Aravin

2

मैं इस सहायक समारोह बनाया है समय

 public static void showTime(final Context context, final TextView textView) { 

    final Calendar myCalendar = Calendar.getInstance(); 
    TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() { 
     public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
      String am_pm = ""; 
      myCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay); 
      myCalendar.set(Calendar.MINUTE, minute); 
      if (myCalendar.get(Calendar.AM_PM) == Calendar.AM) 
       am_pm = "AM"; 
      else if (myCalendar.get(Calendar.AM_PM) == Calendar.PM) 
       am_pm = "PM"; 
      String strHrsToShow = (myCalendar.get(Calendar.HOUR) == 0) ? "12" : myCalendar.get(Calendar.HOUR) + ""; 
      //UIHelper.showLongToastInCenter(context, strHrsToShow + ":" + myCalendar.get(Calendar.MINUTE) + " " + am_pm); 
      textView.setText(strHrsToShow + ":" + myCalendar.get(Calendar.MINUTE) + " " + am_pm); 
     } 
    }; 
    new TimePickerDialog(context, mTimeSetListener, myCalendar.get(Calendar.HOUR), myCalendar.get(Calendar.MINUTE), false).show(); 
} 

और कैसे आवश्यक प्रारूप में वर्तमान समय प्राप्त करने के लिए प्राप्त करने के लिए, मैं कोड निम्न का उपयोग करें। // PARAM दिनांक समय की तारीख आप तारीख से फ़ॉर्मेट करने के लिए // PARAM currentFormat तारीख से // PARAM requiredFormat चाहते है

public static String getFormattedDate(String date, String currentFormate, String requiredFormate) { 
    //SimpleDateFormat formatActual = new SimpleDateFormat("yyyy - MM - dd"); 
    if (date != null) { 
     SimpleDateFormat formatActual = new SimpleDateFormat(currentFormate); 
     Date dateA = null; 
     try { 
      dateA = formatActual.parse(date); 
      System.out.println(dateA); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
     //SimpleDateFormat formatter = new SimpleDateFormat("dd MMM, yyyy"); 
     SimpleDateFormat formatter = new SimpleDateFormat(requiredFormate); 
     String format = formatter.format(dateA); 
     System.out.println(format); 
     return format; 
    } else { 
     return ""; 
    } 

} 

getFormattedDate के उपयोग है:

 String date = getFormattedDate(dateYouWantToFormate,"hh:mm a","hh:mm"); 
+0

अगर मैं एचएच: मिमी प्रारूप में समय निर्धारित करना चाहता हूं तो क्या परिवर्तन की आवश्यकता है? – Andie

+0

मैंने जवाब संपादित किया है ताकि आप अपने आवश्यक प्रारूप में जा सकें –

संबंधित मुद्दे