将字符串值传递给Long

时间:2016-09-17 14:46:54

标签: android datetime

我把这个日期和时间连成一个字符串,我做得对吗?因为我想将strDateTime传递给Long类型(因为它的构造函数是Long) 这是代码

public void DT(){
        seldate = (TextView) findViewById(R.id.receivedate);
        newDate = seldate.getText().toString();
        timeChose = time1.getText().toString();
        final   TimePicker tp = (TimePicker) findViewById(R.id.timePicker1);

        strDateTime = newDate + " "+ timeChose ;
        DatabaseSource sched = new DatabaseSource(
                subject.getText().toString(),
                description.getText().toString(),
                strDateTime.toLong()
        );
        long result = dbHelper.addSched(sched);
        if(result>0){
            Toast.makeText(getApplicationContext(),"Added", Toast.LENGTH_SHORT).show();
        }
        else {
            Toast.makeText(getApplicationContext(),"Add Failed", Toast.LENGTH_SHORT).show();
        }
}

PS选择日期,我将其保存到首选项键然后获取它并传递到下一个活动中的textview(我将创建事件)然后我点击一个edittext时弹出timepickerdialog然后设置编辑文本字段本身的时间。

2 个答案:

答案 0 :(得分:0)

使用此代码Long.parseLong("0", 0);

此处"0"是您的字符串值,0是默认值(如果字符串为空或不是数字格式,则为

答案 1 :(得分:0)

yyyy-MM-dd格式的日期解析为Date对象。 使用getTime方法获取时间戳(以毫秒为单位)。

试试这个,

String strDateTime = "2016-09-17 11:21 PM";

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm aa");
long milliseconds = 0;
try {
    Date date = format.parse(strDateTime);
    milliseconds = date.getTime();
} catch (Exception e) {
    e.printStackTrace();
}

// pass milliseconds to the method
DatabaseSource sched = new DatabaseSource(
        subject.getText().toString(),
        description.getText().toString(),
        milliseconds
);