以下程序使用日期和时间生成唯一键(使用joda time API)
import org.apache.commons.codec.binary.Base64;
import org.joda.time.*;
public class EnDecoding {
public String EncodeRecieverAddress(String emailaddress){
byte[] encodedBytes = Base64.encodeBase64(emailaddress.getBytes());
return new String(encodedBytes);
}
public String DecodeRecieverAddress(String encodedemail){
byte[] decodedBytes = Base64.decodeBase64(encodedemail.getBytes());
return new String(decodedBytes);
}
public int GenerateUniquekey() {
LocalTime localtime = new LocalTime();
LocalDate localdate = new LocalDate();
String key = "" + localdate.getDayOfYear()
+ localdate.getDayOfMonth()
+ localdate.getDayOfWeek()
+ localtime.getHourOfDay()
+ localtime.getMinuteOfHour()
+ localtime.getSecondOfMinute()
+ localtime.getMillisOfSecond();
System.out.println(key);
System.out.println(Integer.parseInt(key.trim()));
return 0;
}
}
的System.out.println(键);
输出:117275232750437
的System.out.println(的Integer.parseInt(key.trim()));
java.lang.NumberFormatException:对于输入字符串:“117275232750437”
我使用了id.trim()函数来消除前导和尾随空格,但这也没有解决我的问题。
请不要将此问题重复标记为因为其他类似的问题对我没什么帮助,这就是为什么我创建了这个新问题,所以我希望在这里得到最好的答案。
答案 0 :(得分:2)
使用Long
代替整数,因为它超出了Integer
String s = "117275232750437";
System.out.println(Long.parseLong(s));
答案 1 :(得分:1)
整数的最大值是2,147,483,647,输入太大。请改用Long
。
答案 2 :(得分:0)
你的号码太大了,你应该使用Long
int
的最大值为2.147.483.647。