我正在尝试将日期和时间转换为毫秒,但它总是给我错误的答案请告诉我如何转换这种格式的日期和时间" 5/4/2014 4:39:52 PM& #34;以毫秒为单位
" 5/4/2014 4:39:52 PM"
我试图在特定日期时间根据上午和下午唤醒警报
谢谢
答案 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();
}
只需根据您的要求修改位代码及其变量名称。