2016-01-23 241 views
-1

我已经完成了设置日期和时间到我的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

你有什么问题吗? –

+0

'cal.getTimeInMillis()' –

+0

想知道如何将日期和时间转换为毫秒 – Rahul

回答

0

最简单的方法可能是使用的SimpleDateFormat,已经适当地设置时区: 设置时区是重要的一点在这里,因为否则会解释是在价值当地时区。

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();