2016-01-22 76 views
0

我已經完成了爲我的TextView獲取和設置日期和時間,現在我想知道「如何將日期和時間轉換爲毫秒,當我從DatePicker和TimePicker設置爲TextView 」幫我碼如何將日期和時間轉換爲毫秒

我試過代碼,

public class MainActivity extends AppCompatActivity { 
private TextView txtDateSet; 
private TextView txtTimeSet; 
int cDay, cMonth, cYear; 
int tHours, tMinutes; 

@Override 
protected void onCreate (Bundle savedInstanceState) { 
    super.onCreate (savedInstanceState); 
    setContentView (R.layout.activity_main); 

    txtDateSet = (TextView) findViewById (R.id.txt_date_display); 
    txtTimeSet = (TextView) findViewById (R.id.txt_time_display); 

    txtDateSet.setOnClickListener (new View.OnClickListener() { 
     @Override 
     public void onClick (View v) { 
      displayAlertDialog(); 
     } 
    }); 

} 

public void displayAlertDialog() { 

    AlertDialog.Builder builder = new AlertDialog.Builder (this); 
    LayoutInflater inflater = (LayoutInflater) getSystemService (Context.LAYOUT_INFLATER_SERVICE); 
    final View layout = inflater.inflate (R.layout.custom_alert, (ViewGroup) findViewById (R.id.lnt_root)); 
    final DatePicker dateSet = (DatePicker) layout.findViewById (R.id.date_picker); 
    final TimePicker timeSet = (TimePicker) layout.findViewById (R.id.time_picker); 
    final TextView txtOk = (TextView) layout.findViewById (R.id.txt_ok); 

    builder.setView (layout); 
    final AlertDialog alertDialog = builder.create(); 
    alertDialog.setCanceledOnTouchOutside (true); 
    alertDialog.show(); 

    txtOk.setOnClickListener (new View.OnClickListener() { 
     @TargetApi(Build.VERSION_CODES.M) 
     @Override 
     public void onClick (View v) { 
      cDay = dateSet.getDayOfMonth(); 
      cMonth = dateSet.getMonth(); 
      cYear = dateSet.getYear(); 
      tHours = timeSet.getCurrentHour(); 
      tMinutes = timeSet.getCurrentMinute(); 

      Calendar cal = Calendar.getInstance(); 
      cal.set(Calendar.YEAR, cYear); 
      cal.set(Calendar.MONTH, cMonth); 
      cal.set (Calendar.DAY_OF_MONTH, cDay); 
      cal.set (Calendar.HOUR_OF_DAY, tHours); 
      cal.set (Calendar.MINUTE, tMinutes); 

      SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy"); 
      String formatedDate = sdf.format(cal.getTime()); 
      txtDateSet.setText (""+formatedDate); 

      SimpleDateFormat stf = new SimpleDateFormat ("hh:mm aa"); 
      String formatedTime = stf.format (cal.getTime()); 
      txtTimeSet.setText (""+formatedTime); 

      alertDialog.dismiss(); 
     } 
    }); 
}} 

回答

0

像這樣做,

public String getDay(String str){ 
    if(str.equalsIgnoreCase("mon") 
    return "Monday"; 
    .... 
    } 

按你的代碼

String mDate = dayFormat.format (cDay); 
      StringBuilder dateBuilder = new StringBuilder() 
        .append (getDay(mDate)).append (",") 
        .append (mMonth).append (" ") 
        .append (cDay).append (",") 
        .append (cYear); 

OR

SimpleDateFormat format = new SimpleDateFormat("EEEE, MMM dd, YYYY"); 
+0

字符串mMonth = monthFormat.format(cMonth + 1); – Madhur

0

你可以嘗試跟進代碼從日期越來越毫秒。

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US); 
      format.setTimeZone(TimeZone.getTimeZone("UTC")); 
      Date date = format.parse(text); 
      long millis = date.getTime(); 

,我們也有一個標準庫調用JodaTime這是提供土地與日期time.using有關這個庫,你可以很容易地從日期時間獲得毫秒關閉functinality。 我也有一個代碼片段這只是從DateTime返回Miliseconds。

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss") 
        .withLocale(Locale.US) 
        .withZoneUTC(); 


      DateTime datetime = formatter.parseDateTime(text); 
      long millis = dateTime.getMillis(); 

      //Or 
      //long millis = formatter.parseMillis(text); 

我希望你清楚我的想法。

最佳運氣