我正在使用我正在使用的app,hr,min,day,month和year。现在我必须将其转换为**毫秒。 我使用日历类来完成此操作。 但我的问题是日历将其转换为AM_PM格式,这会导致错误。
参见我的方法。
public static long getTimeStamp(int day, int month, int year, int hour, int min) {
Calendar c = Calendar.getInstance(Locale.ENGLISH);
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, day);
c.set(Calendar.HOUR, hour);
c.set(Calendar.MINUTE, min);
Log.d(Const.TAG, "getTimeStamp: " + c.getTimeInMillis() / 1000);
return (c.getTimeInMillis() / 1000);
}
现在如果我将14设为小时。它将它转换为02.如何解决这个问题。提前谢谢。
答案 0 :(得分:1)
改变这个:
c.set(Calendar.HOUR, hour);
像这样:
c.set(Calendar.HOUR_OF_DAY, hour);
答案 1 :(得分:1)
试试此代码
public static long getTimeStamp(int day, int month, int year, int hour, int min) {
Calendar calendar = Calendar.getInstance();
calendar.set(year, month,day,
hour, min, 0);
long miliseconds = calendar.getTimeInMillis();
return miliseconds;
}
答案 2 :(得分:0)
尝试使用,
public static byte[] ConstructEcdsaSigValue(byte[] rs)
{
if (rs == null)
throw new ArgumentNullException(nameof(rs));
if (rs.Length < 2 || rs.Length % 2 != 0)
throw new ArgumentException("Invalid length", nameof(rs));
int halfLen = rs.Length / 2;
byte[] half1 = new byte[halfLen];
Array.Copy(rs, 0, half1, 0, halfLen);
var r = new Org.BouncyCastle.Math.BigInteger(1, half1);
byte[] half2 = new byte[halfLen];
Array.Copy(rs, halfLen, half2, 0, halfLen);
var s = new Org.BouncyCastle.Math.BigInteger(1, half2);
var derSequence = new Org.BouncyCastle.Asn1.DerSequence(
new Org.BouncyCastle.Asn1.DerInteger(r),
new Org.BouncyCastle.Asn1.DerInteger(s));
return derSequence.GetDerEncoded();
}
转换为毫秒。