我在执行以下语句时遇到NumberFormatException。
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day_of_month = 15;
long m_time = Long.parseLong((month + 1) + "/" + day_of_month + "/" + year);
和
long m_time = Long.parseLong(String.valueOf((month + 1) + "/" + day_of_month + "/" + year));
答案 0 :(得分:2)
NumberFormatException的原因是你试图解析一个不是有效长表示的字符串:" 2/15/2015"
要解析您正确使用此代码的日期字符串:
SimpleDateFormat format = new SimpleDateFormat("M/dd/yyyy");
Date date = format.parse(month + 1 + "/" + day_of_month + "/" + year);
答案 1 :(得分:1)
&#34 2 /二千零十五分之十五" Long.parseLong()
方法无法解析字符串的类型。使用SimpleDateFormat。
String string_date = "15-January-2015";
SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy");
Date d = f.parse(string_date);
long milliseconds = d.getTime();
答案 2 :(得分:0)
您正在尝试使用包含大量非数字字符的连接字符串进行parseLong。
如果您尝试获取给定日期的Long
值:
Calendar myCalendar = Calendar.getInstance();
Date now = myCalendar.getTime(); // date object of today
System.out.println(now.getTime()); // prints long value of today
myCalendar.set(Calendar.DAY_OF_MONTH, 15);
Date then = myCalendar.getTime(); // date object for the 15th
System.out.println(then.getTime());// prints long value again but for the 15th
如果您要将Date
对象格式化为String
:
SimpleDateFormat format = new SimpleDateFormat("M/d/YYYY");
System.out.println(format.format(now));
System.out.println(format.format(then));