在Android中将日期和时间转换为毫秒

Posted

技术标签:

【中文标题】在Android中将日期和时间转换为毫秒【英文标题】:Convert date and time to milliseconds in Android 【发布时间】:2012-10-24 18:19:03 【问题描述】:

我有来自 DatePickerTimePicker日期时间。现在我想将选定的日期和时间更改为 毫秒。我该怎么做???

例如,我选择了 日期 2-5-2012 并且 时间20:43

现在我必须将此日期时间转换为 毫秒 类似于

DateTimeInMilliseconds = 1234567890

【问题讨论】:

您的意思是从 1970 年 1 月 1 日 00:00 开始经过的毫秒数? 【参考方案1】:

您可以使用 DatePicker 和 TimePicker 中的值创建一个 Calendar 对象:

Calendar calendar = Calendar.getInstance();
calendar.set(datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth(), 
             timePicker.getCurrentHour(), timePicker.getCurrentMinute(), 0);
long startTime = calendar.getTimeInMillis();

【讨论】:

我喜欢您的方法 (+1),但我个人尽可能避免使用 try-catch 块开销。 "d-M-yyyy" 是否适用于两位数日期,例如“12-10-2012”? 但他只需要以毫秒为单位的时间,仅此而已。所以会有开销,因为首先你得到实际时间,然后你重置它,然后你才得到你的毫秒数,而有一个 Date 对象具有立即返回毫秒数的 getTime() 方法。 @Sam 是的。 d 接受“1-31”,dd 接受“01-31”,同样适用于MMM @JonathanCruz 是的,那里有点浪费。但是你从哪里得到你的 Date 对象呢?由于我不知道的原因,没有直接的方法可以从 DatePicker 获取 Date 值。 @krunalshah 不要进行这种无用的编辑。添加TimePicker 并不会改善答案,只会添加与答案本身无关的信息。我已经回滚了你的编辑。【参考方案2】:

将两个字符串合并在一起,并使用SimpleDateFormat 解析它们。

类似这样的:

String toParse = myDate + " " + myTime; // Results in "2-5-2012 20:43"
SimpleDateFormat formatter = new SimpleDateFormat("d-M-yyyy hh:mm"); // I assume d-M, you may refer to M-d for month-day instead.
Date date = formatter.parse(toParse); // You will need try/catch around this
long millis = date.getTime();

IDEOne 上的示例:http://ideone.com/nOJYQ4

【讨论】:

【参考方案3】:

您可以使用此代码

String string_date = "12-December-2012";

SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy");
Date d = f.parse(string_date);
long milliseconds = d.getTime();

【讨论】:

【参考方案4】:

Date 类的getTime() 方法返回一个long,时间以毫秒为单位。

http://developer.android.com/reference/java/util/Date.html

所以如果你有一个 Date 对象,比如:

Date date;

你可以这样做:

System.out.println(date.getTime());

它会以毫秒为单位打印出时间。

【讨论】:

以上是关于在Android中将日期和时间转换为毫秒的主要内容,如果未能解决你的问题,请参考以下文章

在javascript中将iso日期转换为毫秒

如何在 iOS/XCode 中将毫秒时间戳转换为日期和时间?

如何在 Django 中将日期时间转换为毫秒?

在 iOS 中将毫秒转换为日期

在mongodb聚合管道中将毫秒转换为日期以进行分组?

如何在 Python 中将日期时间对象转换为自纪元(unix 时间)以来的毫秒数?