如何将日期和时间转换为毫秒
问题描述:
我已经完成了为我的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");
答
你可以尝试跟进代码从日期越来越毫秒。
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);
我希望你清楚我的想法。
最佳运气
字符串mMonth = monthFormat.format(cMonth + 1); – Madhur