Android 时间选择器以毫秒为单位获取错误的毫秒值
我使用时间选择器在firebase中存储时间 但是时间选择器在毫秒内选择了错误的值。 如果我存储时间为03:02 pm,它将存储06:49:00。 如何使用时间选择器获得精确的毫秒Android 时间选择器以毫秒为单位获取错误的毫秒值,android,firebase,timer,firebase-realtime-database,Android,Firebase,Timer,Firebase Realtime Database,我使用时间选择器在firebase中存储时间 但是时间选择器在毫秒内选择了错误的值。 如果我存储时间为03:02 pm,它将存储06:49:00。 如何使用时间选择器获得精确的毫秒 public class EditTimeTable extends BaseActivity { private EditText editTextaddress; private TextView textviewday; String day; //private Spinner spinnerDay; pr
public class EditTimeTable extends BaseActivity {
private EditText editTextaddress;
private TextView textviewday;
String day;
//private Spinner spinnerDay;
private Spinner spinnerSlot;
private Button buttonsave;
private TimePicker timePicker;
private static final String REQUIRED = "Required";
private static final String TAG = "time table activity";
//a list to store all the dr time data from firebase database
List<drtime> drtimes;
//our database reference object
private DatabaseReference databasedrtime;
//firebase auth object
private FirebaseAuth firebaseAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_time_table);
Bundle bundle = getIntent().getExtras();
day = bundle.getString("key", "");
TextView TextViewday = (TextView) findViewById(R.id.post_day);
TextViewday.setText(day);
//getting the reference of drtime node
databasedrtime = FirebaseDatabase.getInstance().getReference();
//getting views
editTextaddress = (EditText) findViewById(R.id.post_body);
textviewday = (TextView) findViewById(R.id.post_day);
//spinnerDay = (Spinner) findViewById(R.id.spinner2);
spinnerSlot = (Spinner) findViewById(R.id.spinner);
timePicker = (TimePicker) findViewById(R.id.timePicker);
// listViewArtists = (ListView) findViewById(R.id.listViewArtists);
buttonsave = (Button) findViewById(R.id.button4);
//adding an onclicklistener to button
buttonsave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (day.contentEquals("Monday") ) {
adddrtime0();
}
});
}
private void adddrtime0() {
//getting the values to save
final String address = editTextaddress.getText().toString();
final String day = textviewday.getText().toString();
//final String day = spinnerDay.getSelectedItem().toString();
final String slot = spinnerSlot.getSelectedItem().toString();
final long time = timePicker.getDrawingTime();
// address is required
if (TextUtils.isEmpty(address)) {
editTextaddress.setError(REQUIRED);
return;
}
final String userId = getUid();
databasedrtime.child("users").child(userId).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
UserTime userTime = dataSnapshot.getValue(UserTime.class);
if (userTime == null) {
// User is null, error out
Log.e(TAG, "User " + userId + " is unexpectedly null");
Toast.makeText(EditTimeTable.this,
"Error: could not fetch user.",
Toast.LENGTH_SHORT).show();
} else {
// Write new post
writetimetable(userId, userTime.username, address, day, slot, time);
finish();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "getUser:onCancelled", databaseError.toException());
}
});
}
private void writetimetable(String userId, String username, String address, String day, String slot, long time) {
// Create new post at /user-posts/$userid/$postid and at
// /posts/$postid simultaneously
String key = databasedrtime.child("Monday").getKey();
drPost dr = new drPost(userId, username, address, day, slot, time);
Map<String, Object> postValues = dr.toMap();
Map<String, Object> childUpdates = new HashMap<>();
childUpdates.put("/user_time_table/" + userId + "/" + key, postValues);
databasedrtime.updateChildren(childUpdates);
}
公共类编辑活动{
专用编辑文本编辑地址;
私有文本视图文本视图日;
弦日;
//私人纺纱厂纺纱厂日;
私人纺纱机;
私人按钮保存;
私人时间选择器;
私有静态最终字符串REQUIRED=“REQUIRED”;
私有静态最终字符串TAG=“时间表活动”;
//存储firebase数据库中所有灾难恢复时间数据的列表
列出时间;
//我们的数据库引用对象
私有数据库参考数据库时间;
//firebase身份验证对象
私有FirebaseAuth FirebaseAuth;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u edit\u time\u table);
Bundle Bundle=getIntent().getExtras();
day=bundle.getString(“key”,即“”);
TextView TextViewday=(TextView)findViewById(R.id.post_day);
TextViewday.setText(天);
//获取drtime节点的引用
databasedrtime=FirebaseDatabase.getInstance().getReference();
//获取视图
editTextaddress=(EditText)findViewById(R.id.post_body);
textviewday=(TextView)findViewById(R.id.post_day);
//喷丝头日=(喷丝头)findViewById(R.id.spinner2);
喷丝头槽=(喷丝头)findViewById(R.id.Spinner);
timePicker=(timePicker)findviewbyd(R.id.timePicker);
//listViewArtists=(ListView)findViewById(R.id.listViewArtists);
buttonsave=(按钮)findViewById(R.id.button4);
//向按钮添加onclicklistener
buttonsave.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
如果(日期等于(“星期一”)){
adddrtime0();
}
});
}
私有void adddrtime0(){
//获取要保存的值
最终字符串地址=editTextaddress.getText().toString();
最后一个字符串day=textviewday.getText().toString();
//最终字符串日期=spinnerDay.getSelectedItem().toString();
最终字符串槽=喷丝头槽。getSelectedItem().toString();
final long time=timePicker.getDrawingTime();
//地址是必需的
if(TextUtils.isEmpty(地址)){
editTextaddress.setError(必需);
返回;
}
最后一个字符串userId=getUid();
databasedrtime.child(“用户”).child(userId).addValueEventListener(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
UserTime UserTime=dataSnapshot.getValue(UserTime.class);
if(userTime==null){
//用户为空,错误为0
Log.e(标记“User”+userId+”意外为空);
Toast.makeText(editTimeline.this,
“错误:无法获取用户。”,
吐司。长度(短)。show();
}否则{
//写新帖子
WriteMetable(userId、userTime.username、地址、日期、时隙、时间);
完成();
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
w(标记“getUser:onCancelled”,databaseError.toException());
}
});
}
私有void writeMetable(字符串用户ID、字符串用户名、字符串地址、字符串日期、字符串槽、长时间){
//在/user posts/$userid/$postd和
///posts/$posted
String key=databasedrtime.child(“星期一”).getKey();
drPost dr=新的drPost(用户ID、用户名、地址、日期、时段、时间);
Map postValues=dr.toMap();
Map childUpdates=newhashmap();
childUpdates.put(“/user\u time\u table/”+userId+“/”+key,postValues);
databasedrtime.updateChildren(childUpdates);
}
在adddrtime0()输入此代码
我正在获取我所选择的时间选择器值。getDrawingTime()
不是您想要的。也许您应该咨询.ya,而不是我使用的(getDrawingTime)。我查看了文档,但没有得到它。
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
final int days = calendar.get(Calendar.DAY_OF_MONTH);
int hour = 0;
int minute = 0;
int currentApiVersion = android.os.Build.VERSION.SDK_INT;
if (currentApiVersion > android.os.Build.VERSION_CODES.LOLLIPOP_MR1){
hour = timePicker.getHour();
minute = timePicker.getMinute();
} else {
hour = timePicker.getCurrentHour();
minute = timePicker.getCurrentMinute();
}
calendar.set(year, month, days, hour, minute);
final long time = calendar.getTimeInMillis();