我正在尝试将日期和时间转换为毫秒,但它总是给我错误的答案请告诉我如何转换这种类型的格式日期和时间"5/4/2014 4:39:52 PM"以毫秒为单位
"2014/5/4 16:39:52
"我正在尝试在特定日期时间根据上午和下午唤醒闹钟
谢谢
你应该使用 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 中将字符串解析为日期。
尝试以下代码
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());
避免使用臭名昭著的麻烦 java.util.Date 和 .日历类。
乔达时间
下面是一些使用 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
要获取AM和PM,您可以尝试以下代码,
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();
}
只需根据您的要求修改位代码,它的变量名称即可。