将日期时间与AM和PM转换为毫秒?

时间:2014-04-02 11:15:52

标签: android datetime

我正在尝试将日期和时间转换为毫秒,但它总是给我错误的答案请告诉我如何转换这种格式的日期和时间" 5/4/2014 4:39:52 PM& #34;以毫秒为单位

" 5/4/2014 4:39:52 PM"

我试图在特定日期时间根据上午和下午唤醒警报

谢谢

4 个答案:

答案 0 :(得分:5)

您应该使用SimpleDateformat

String dateString = "5/4/2014 4:39:52 PM";
SimpleDateFormat format = 
                new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a");
Date date = format.parse(dateString);
long millisecond = date.getTime();

此类用于将字符串解析为java中的日期。

答案 1 :(得分:1)

尝试以下代码

String dateString = "05/04/2014 4:39:52 PM";
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss aa");
Date mDate = new Date();
try {
    mDate = dateFormat.parse(dateString);
} catch (ParseException e) {
    e.printStackTrace();
}
System.out.println("TimeMilis : " +mDate.getTime());

答案 2 :(得分:1)

避免使用臭名昭着的java.util.Date和.Calendar类。

约达时间

以下是使用Joda-Time 2.3。

的一些示例代码
String input = "5/4/2014 4:39:52 PM";

DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" ); // Or, DateTimeZone.UTC
DateTimeFormatter formatter = DateTimeFormat.forPattern( "dd/MM/yyyy hh:mm:ss a" );

DateTime dateTime = formatter.withZone( timeZone ).parseDateTime( input );
long millis = dateTime.getMillis();

DateTime dateTimeUtc = dateTime.withZone( DateTimeZone.UTC );

转储到控制台...

System.out.println( "input: " + input );
System.out.println( "dateTime: " + dateTime );
System.out.println( "millis: " + millis );
System.out.println( "dateTimeUtc: " + dateTimeUtc );

跑步时......

input: 5/4/2014 4:39:52 PM
dateTime: 2014-04-05T16:39:52.000+02:00
millis: 1396708792000
dateTimeUtc: 2014-04-05T14:39:52.000Z

答案 3 :(得分:0)

要获得上午和下午,您可以尝试以下代码,

private void updateTime(int hours, int mins) {

        String timeSet = "";
        if (hours > 12) {
            hours -= 12;
            timeSet = "PM";
        } else if (hours == 0) {
            hours += 12;
            timeSet = "AM";
        } else if (hours == 12)
            timeSet = "PM";
        else
            timeSet = "AM";

        String minutes = "";
        if (mins < 10)
            minutes = "0" + mins;
        else
            minutes = String.valueOf(mins);

        aTime = new StringBuilder().append(hours).append(':').append(minutes)
                .append(" ").append(timeSet).toString();
    }

只需根据您的要求修改位代码及其变量名称。