我有一个字符串中的日期,像“12月-2012”。 我怎么能转换成毫秒(长)呢?
Answer 1:
使用的SimpleDateFormat
String string_date = "12-December-2012";
SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy");
try {
Date d = f.parse(string_date);
long milliseconds = d.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
Answer 2:
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
Date date = (Date)formatter.parse("12-December-2012");
long mills = date.getTime();
Answer 3:
看看到SimpleDateFormat
类,它可以分析一个String
并返回Date
和getTime
的方法Date
类。
Answer 4:
- 首先字符串转换为
java.util.Date
使用日期格式 - 使用的getTime() ,以获得最新的毫秒计数
Answer 5:
它是关于时间,有人提供了现代化的回答这个问题。 2012年,当有人问,答案还贴出当时是很好的答案。 为什么答案公布在2016年也用那么长的过时类SimpleDateFormat
和Date
是多了一份神秘的一点给我。 java.time
,现代Java的日期和时间API也被称为JSR-310,是这么多更好的工作。 您可以通过ThreeTenABP使用它,在Android上看到这样一个问题:如何在Android的项目中使用ThreeTenABP 。
在大多数情况下,我建议使用毫秒,因为在这一天在UTC开始的时代。 为了获得这些:
DateTimeFormatter dateFormatter
= DateTimeFormatter.ofPattern("d-MMMM-uuuu", Locale.ENGLISH);
String stringDate = "12-December-2012";
long millisecondsSinceEpoch = LocalDate.parse(stringDate, dateFormatter)
.atStartOfDay(ZoneOffset.UTC)
.toInstant()
.toEpochMilli();
System.out.println(millisecondsSinceEpoch);
这将打印:
1355270400000
如果您需要在一天中的某些特定时间段的开始时间,指定时间段,而不是UTC,例如:
.atStartOfDay(ZoneId.of("Asia/Karachi"))
正如预期的那样这给了一个稍微不同的结果:
1355252400000
还有一点要注意,记得到现场提供给你DateTimeFormatter
。 我把月是英语,还有其他语言如该月被称为是相同的,所以请自己选择正确的语言环境。 如果你没有提供的语言环境,格式化将使用JVM的语言环境设置,这在许多情况下工作,当你用不同的区域设置运行在设备上的应用程序,然后意外失败的一天。
Answer 6:
你可以使用SimpleDateFormat的解析字符串的日期。
Answer 7:
使用SimpleDateFormat的,你可以很容易地实现它。
1)使用simpledateformatter首先字符串转换为java.Date。
2)使用getTime方法以获得从日期的毫秒的计数
public class test {
public static void main(String[] args) {
String currentDate = "01-March-2016";
SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy");
Date parseDate = f.parse(currentDate);
long milliseconds = parseDate.getTime();
}
}
更多的实例点击这里
Answer 8:
最简单的方法是使用使用日期()和的getTime日期()
Date dte=new Date();
long milliSeconds = dte.getTime();
String strLong = Long.toString(milliSeconds);
System.out.println(milliSeconds)
Answer 9:
试试下面的代码
SimpleDateFormat f = new SimpleDateFormat("your_string_format", Locale.getDefault());
Date d = null;
try {
d = f.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
long timeInMillis = d.getTime();