如何将日期和时间转换为毫秒

问题描述:

我已经完成了为我的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(); 
     } 
    }); 
}} 

像这样做,

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

你可以尝试跟进代码从日期越来越毫秒。

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

我希望你清楚我的想法。

最佳运气