【问题标题】:How to convert Date and time to milliSeconds?如何将日期和时间转换为毫秒?
【发布时间】:2016-01-23 07:13:53
【问题描述】:

我已经完成了获取和设置我的 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 ();
        }
    });
}}

【问题讨论】:

  • 你有什么问题?
  • cal.getTimeInMillis()
  • 想知道如何将日期和时间转换为毫秒

标签: android datepicker timepicker


【解决方案1】:

最简单的方法可能是使用 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();

【讨论】:

    猜你喜欢
    • 2017-02-14
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多