Java转换字符串,具有毫秒到日期的对象
我有两条线Java转换字符串,具有毫秒到日期的对象,java,string,date,Java,String,Date,我有两条线 2012-06-25 15:02:22.948 +0530 我需要一个新字符串,它将5:30添加到第一个字符串中的时间 我想我可以通过将两个字符串转换为日期对象,然后添加。但我不知道怎么做,因为当我使用 yyyy-MM-dd hh:MM:ss作为第一个字符串的日期格式,我得到一个错误 谢谢 字符串2012-06-25 15:02:22.948的格式不是yyyy-MM-dd hh:MM:ss,因此您会遇到“错误”也就不足为奇了(错误是什么?您越具体,人们就越能帮助您!) 请尝试yy
- 2012-06-25 15:02:22.948
- +0530
谢谢 字符串
2012-06-25 15:02:22.948
的格式不是yyyy-MM-dd hh:MM:ss
,因此您会遇到“错误”也就不足为奇了(错误是什么?您越具体,人们就越能帮助您!)
请尝试yyyy-MM-dd HH:MM:ss.SSS
。请参阅以了解格式字符串的确切语法
注意:大写和小写在格式字符串中很重要
hh
表示12小时制,hh
表示24小时制。如果您使用hh
,解析15
的时间将无法工作。您还没有在格式字符串中包含毫秒SSS
。字符串2012-06-25 15:02:22.948
的格式不是yyyy-MM-dd hh:MM:ss
,因此您会出现“错误”也就不足为奇了(错误是什么?您越具体,人们就越能帮助您!)
请尝试yyyy-MM-dd HH:MM:ss.SSS
。请参阅以了解格式字符串的确切语法
注意:大写和小写在格式字符串中很重要
hh
表示12小时制,hh
表示24小时制。如果您使用hh
,解析15
的时间将无法工作。您也没有将毫秒SSS
包含在格式字符串中。由于您的日期格式字符串错误,因此出现异常。您在表单上提供了一个日期字符串
"yyyy-MM-dd hh:mm:ss.S"
请参见您收到一个异常,因为您的日期格式字符串错误。您在表单上提供了一个日期字符串
"yyyy-MM-dd hh:mm:ss.S"
请参见您可以合并字符串String1+string2,并可以使用格式
yyyy-MM-dd HH:MM:ss.SSSZ
解析日期。您可以查看更多文档您可以合并字符串String1+string2,并可以使用格式yyyy-MM-dd HH:MM:ss.SSSZ
解析日期。您可以查看更多文档尝试以下方法:
DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
Date date = format.parse("2012-06-25 15:02:22.948");
Calendar calendar = new GregorianCalendar();
calendar.setTimeInMillis(date.getTime());
int time = Integer.parseInt("0530");
int hour = time / 100;
int minute = time % 100;
calendar.add(Calendar.HOUR_OF_DAY, hour);
calendar.add(Calendar.MINUTE, minute);
String newDateInString = format.format(calendar.getTime());
试试这个:
DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
Date date = format.parse("2012-06-25 15:02:22.948");
Calendar calendar = new GregorianCalendar();
calendar.setTimeInMillis(date.getTime());
int time = Integer.parseInt("0530");
int hour = time / 100;
int minute = time % 100;
calendar.add(Calendar.HOUR_OF_DAY, hour);
calendar.add(Calendar.MINUTE, minute);
String newDateInString = format.format(calendar.getTime());
其他答案是正确的,但已经过时 java.time 与最早版本的java捆绑在一起的旧日期时间类(java.util.date/.Calendar等)现在是遗留的 那些旧的课程已经被这个包取代了。看见许多功能已在中向后移植到Java6和Java7,并在中进一步适应Android
LocalDateTime
该类表示没有时区的日期时间。第一件就用这些
您的格式接近标准格式,只需将空格替换为T
String input = "2012-06-25 15:02:22.948";
String inputStandardized = input.replace( " " , "T" );
LocalDateTime ldt = LocalDateTime.parse( inputStandardized );
与UTC的偏移量
另一件是。我们使用这个类来实现这一点
ZoneOffset offset = ZoneOffset.of( "+0530" );
如果没有偏移量或时区,LocalDateTime
不是时间线上的实际时刻,而是关于可能时刻的粗略概念。现在,我们添加您的来标记一个实际的时刻,由类表示
分区
时区是偏移量加上处理异常(如夏令时(DST))的规则。因此,使用时区比仅仅使用偏移要好
例如,如果已知此数据的上下文为,请使用时区(例如)来获取
其他答案是正确的,但已经过时 java.time 与最早版本的java捆绑在一起的旧日期时间类(java.util.date/.Calendar等)现在是遗留的 那些旧的课程已经被这个包取代了。看见许多功能已在中向后移植到Java6和Java7,并在中进一步适应Android
LocalDateTime
该类表示没有时区的日期时间。第一件就用这些
您的格式接近标准格式,只需将空格替换为T
String input = "2012-06-25 15:02:22.948";
String inputStandardized = input.replace( " " , "T" );
LocalDateTime ldt = LocalDateTime.parse( inputStandardized );
与UTC的偏移量
另一件是。我们使用这个类来实现这一点
ZoneOffset offset = ZoneOffset.of( "+0530" );
如果没有偏移量或时区,LocalDateTime
不是时间线上的实际时刻,而是关于可能时刻的粗略概念。现在,我们添加您的来标记一个实际的时刻,由类表示
分区
时区是偏移量加上处理异常(如夏令时(DST))的规则。因此,使用时区比仅仅使用偏移要好
例如,如果已知此数据的上下文为,请使用时区(例如)来获取
您的答案如下:但我无法将字符串正确解析为日期对象。我认为这是因为22.948,小数点,它们是毫秒…您需要使用yyyy-MM-dd hh:MM:ss.SSS作为格式。前面的注释是一个很好的开始方式。此外,您还收到一个错误,因为您的第一个字符串是“yyyy-MM-dd hh:MM:ss.SSS”格式,而不是您提供的格式。此外,您的第二个字符串似乎表示时区…这指定了IST时区。我希望这为您清除了获得所需输出的方法。您的答案如下:但我无法将我的字符串正确解析为日期对象。我认为这是因为22.948,小数点,它们是毫秒…您需要使用yyyy-MM-dd hh:MM:ss.SSS作为格式。前面的注释是一个很好的开始方式。您还将收到一个错误,因为您的第一个字符串是“yyyy-MM-dd hh:MM:ss.SSS”格式,而不是您提供的格式。此外,您的第二个字符串似乎表示时区…这指定了IST时区。我希望这为您清除了获得所需输出的方法