androidtimestamp
Ⅰ 安卓移动文件创建时间戳改变
linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。
1.命令格式:
touch [选项]... 文件...
2.命令参数:
-a 或--time=atime或--time=access或--time=use 只更改存取时间。
-c 或--no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或--time=mtime或--time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间。
3.命令功能:
touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。
4.使用范例:
实例一:创建不存在的文件
命令:
touch log2012.log log2013.log
输出:
[root@localhost test]# touch log2012.log log2013.log
[root@localhost test]# ll
-rw-r--r-- 1 root root 0 10-28 16:01 log2012.log
-rw-r--r-- 1 root root 0 10-28 16:01 log2013.log
如果log2014.log不存在,则不创建文件
[root@localhost test]# touch -c log2014.log
[root@localhost test]# ll
-rw-r--r-- 1 root root 0 10-28 16:01 log2012.log
-rw-r--r-- 1 root root 0 10-28 16:01 log2013.log
实例二:更新log.log的时间和log2012.log时间戳相同
命令:
touch -r log.log log2012.log
输出:
[root@localhost test]# ll
-rw-r--r-- 1 root root 0 10-28 16:01 log2012.log
-rw-r--r-- 1 root root 0 10-28 16:01 log2013.log
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
[root@localhost test]# touch -r log.log log2012.log
[root@localhost test]# ll
-rw-r--r-- 1 root root 0 10-28 14:48 log2012.log
-rw-r--r-- 1 root root 0 10-28 16:01 log2013.log
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
实例三:设定文件的时间戳
命令:
touch -t 201211142234.50 log.log
输出:
[root@localhost test]# ll
-rw-r--r-- 1 root root 0 10-28 14:48 log2012.log
-rw-r--r-- 1 root root 0 10-28 16:01 log2013.log
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
[root@localhost test]# touch -t 201211142234.50 log.log
[root@localhost test]# ll
-rw-r--r-- 1 root root 0 10-28 14:48 log2012.log
-rw-r--r-- 1 root root 0 10-28 16:01 log2013.log
-rw-r--r-- 1 root root 0 2012-11-14 log.log
Ⅱ android:能不能把EditText的输入限制为星期或者是日期时间,就是那种可以直接选择而不用用户输入那种
android中有DatePicker控件的,一般用Dialog
private DatePickerDialog mDateDialog = null;
private TextView mBeginDateTv,mEndDateTv;
private BeanDateTime mBegin,mEnd;
private int mThisDatePicker;
//点击Textview弹出Dialog
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.date_begin:
mThisDatePicker = 0;
mDateDialog = new DatePickerDialog(mContext, dateSetCallback, mBegin.getYear(), mBegin.getMonth() - 1, mBegin.getDay());
mDateDialog.setTitle(R.string.date_begin_label);
mDateDialog.show();
break;
case R.id.date_end:
mThisDatePicker = 1;
mDateDialog = new DatePickerDialog(mContext, dateSetCallback, mEnd.getYear(), mEnd.getMonth() - 1, mEnd.getDay());
mDateDialog.setTitle(R.string.date_end_label);
mDateDialog.show();
break;
default:
break;
}
}
/**
* 日期选择完毕监听器
*/
private OnDateSetListener dateSetCallback = new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
if (mThisDatePicker == 0 ) {
mBegin.setYear(year);
mBegin.setMonth(monthOfYear + 1); //控件中月份是从0开始的
mBegin.setDay(dayOfMonth);
mBegin.setTimeStamp(0L);
mBeginDateTv.setText(mBegin.getDateStr(null));
} else if (mThisDatePicker == 1 ) {
mEnd.setYear(year);
mEnd.setMonth(monthOfYear + 1);
mEnd.setDay(dayOfMonth);
mEnd.setTimeStamp(0L);
mEndDateTv.setText(mEnd.getDateStr(null));
}
mDateDialog = null;
mPage = 0;
getTransList();
}
};
BeanDateTime类
/**
* 日期,时间
* @author Administrator
* @des 除了初始化谨慎用原有的timeStamp字段来转换其他字段!
*
*/
public class BeanDateTime {
private int year;
private int month;
private int day;
private int hour;
private int minute;
private int second;
private long timeStamp;
/**
* 根据bean中的int值返回需要格式的日期字符串,如果formatStr为null,则默认为"yyyy-MM-dd"
* @param formatStr
* @return
*/
public String getDateStr(String formatStr) {
if (formatStr == null) {
formatStr = "yyyy-MM-dd";
}
String intBuild = this.year + "-" + this.month + "-" + this.day;
SimpleDateFormat format= new SimpleDateFormat(formatStr);
String date = null;
try {
date = format.format(format.parse(intBuild));
} catch (ParseException e) {
return intBuild;
}
return date;
}
public BeanDateTime(long timeStamp) {
this.timeStamp = timeStamp;
this.year = Integer.parseInt(parseDateTime(this.timeStamp,"yyyy"));
this.month = Integer.parseInt(parseDateTime(this.timeStamp,"M"));
this.day = Integer.parseInt(parseDateTime(this.timeStamp,"d"));
this.hour = Integer.parseInt(parseDateTime(this.timeStamp,"H"));
this.minute = Integer.parseInt(parseDateTime(this.timeStamp,"mm"));
this.second = Integer.parseInt(parseDateTime(this.timeStamp,"ss"));
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
public int getHour() {
return hour;
}
public void setHour(int hour) {
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
this.minute = minute;
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
this.second = second;
}
public long getTimeStamp() {
return timeStamp;
}
public void setTimeStamp(long timeStamp) {
this.timeStamp = timeStamp;
}
/**
* 按照固定格把long时间戳转化成字符串
* dd/MM/yyyy HH:mm:ss
* @param aTime
* @return
* @des 24小时制:HH:mm:ss,12小时制:hh:mm:ss
*/
public static String parseDateTime(long aTime,String format)
{
return new SimpleDateFormat(format).format(new Date(aTime));
}
}
Ⅲ Android怎么调用系统相册将选中的图片设置为布局的背景,有没有案例或源码
Android中调用系统相机来拍摄照片的代码,如下:
1、首先设置Uri获取判断以及相机请求Code
public final int TYPE_TAKE_PHOTO = 1;//Uri获取类型判断
public final int CODE_TAKE_PHOTO = 1;//相机RequestCode
2、调起系统相机
Intent takeIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri photoUri = getMediaFileUri(TYPE_TAKE_PHOTO);
takeIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(takeIntent, CODE_TAKE_PHOTO);
3、封装获取Uri代码
public Uri getMediaFileUri(int type){
File mediaStorageDir = new File(Environment.(Environment.DIRECTORY_PICTURES), "相册名字");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
return null;
}
}
//创建Media File
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile;
if (type == TYPE_TAKE_PHOTO) {
mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");
} else {
return null;
}
return Uri.fromFile(mediaFile);
}
4、相机拍照完毕后获取返回数据,并在页面显示照片
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case CODE_TAKE_PHOTO:
if (resultCode == RESULT_OK) {
if (data != null) {
if (data.hasExtra("data")) {
Log.i("URI", "data is not null");
Bitmap bitmap = data.getParcelableExtra("data");
imageView.setImageBitmap(bitmap);//imageView即为当前页面需要展示照片的控件,可替换
}
} else {
Log.i("URI", "Data is null");
Bitmap bitmap = BitmapFactory.decodeFile(fileUri.getPath());
imageView.setImageBitmap(bitmap);//imageView即为当前页面需要展示照片的控件,可替换
}
}
break;
}
}
特殊:
一般情况,以上代码在Android7.0以下,也就是api<24时,运行是没有任何问题的。可是当targetSdkVersion变成24及其以上并且在android7.0(及以上版本)系统运行时,会抛出异常:FileUriExposedException。
Ⅳ Android微信支付签名错误这个问题,你是怎么解决的
有以下几种可能原因及解决办法:
body字段为中文字符串,但编码不合适,导致传输过程中中文成乱码
解决办法:统一改成其他编码如utf8字符形式传输
API密钥问题
在商户平台把API密钥重新设置就ok
参数名ASCII码未按升序排列,或者是生成MD5字符串没有toUpperCase转换为大写。
到微信官网上用校验工具校验即可。
key错误。这里特别注意,公众平台的密钥和商户号的密钥是不一样的!
微信支付审核成功之后会收到一封邮件,邮件中有appid 商户号,商户后台登录上号和密码,登录到商户后台:账户设置-安全设置-切换到API安全,下载证书,下面有一个api密匙,进去填写一个字符串 ,保存,后续两次签名都是用的这个手动设置的key
timeStamp在后台签名的时候S大写,前台上传的时候S小写
这个应该不会再出现了,因为微信已更正
Ⅳ 在android平台录制视频时,怎么添加时间戳
【黑马程序员】java多线程与并发库高级应用
【黑马程序员】毕向东Java入门视频
【黑马程序员】方立勋JavaWeb视频
【黑马程序员】项目视频经典之作巴巴运动网续集
【黑马程序员】项目视频经典之作巴巴运动网106集
【黑马程序员】Java视频教程(最适合Java初学者的经典入门视频)
【黑马程序员】张孝祥2010年贺岁视频:Java高新技术
【黑马程序员】JavaWEB开发(JSP+Servlet)视频
【黑马程序员】JDBC视频教程
【黑马程序员】_struts2实用简洁版视频
【黑马程序员】张孝祥Struts开发视频教程
【黑马程序员】Struts1 视频教程
【黑马程序员】AJax技术入门视频教程
【黑马程序员】Hibernate视频教程
【黑马程序员】Spring2.5视频教程
【黑马程序员】EJB3.0视频教程
【黑马程序员】JPA详解视频教程
【黑马程序员】ibatis视频教程
【黑马程序员】张孝祥-7K月薪面试题破解之二:银行业务调度系统
【黑马程序员】张孝祥-7K月薪面试题破解之一:交通灯管理系统
【黑马程序员】java网上在线支付实战视频
【黑马程序员】JAVA邮件开发视频教程
【黑马程序员】FCKeditor视频教程
【黑马程序员】俄罗斯、贪吃蛇游戏-项目视频
【黑马程序员】HTML、CSS、JavaScript技术的入门视频
【黑马程序员】王泽佑JNI视频教程
【黑马程序员】_FTP视频教程
【黑马程序员】Oracle视频教程(内部经典)
【黑马程序员】OA+工作流(JBPM)
视频持续更新中...
详情请搜索:黑马程序员视频
Ⅵ Android 怎么获取当前的时间戳
new Date().getTime();
System.currentTimeMillis();
跟java 取时间一样的
Ⅶ android怎样获取网络速度
Android应用里经常使用到网络速度的显示,特别是文件下载和视频缓冲的时候。用到的是TrafficStats类,就是每隔一段时间去读取网速:
privatevoidshowNetSpeed(){
longnowTotalRxBytes=getTotalRxBytes();
longnowTimeStamp=System.currentTimeMillis();
longspeed=((nowTotalRxBytes-lastTotalRxBytes)*1000/(nowTimeStamp-lastTimeStamp));//毫秒转换
lastTimeStamp=nowTimeStamp;
lastTotalRxBytes=nowTotalRxBytes;
Messagemsg=mHandler.obtainMessage();
msg.what=100;
msg.obj=String.valueOf(speed)+"kb/s";
mHandler.sendMessage(msg);//更新界面
}
Ⅷ android sqlite cursor怎么得到date类型 csdn
在android的sqlite中存取DATETIME类型的方法。
创建表时:
String sql="create table tb3(idINTEGER PRIMARY KEY,timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, weight DOUBLE)";
timestamp字段缺省值是当前时间(基于GMT而不是local time)。这问题导致了记录的时间跟本地实际时间有几个小时的差距,费了我好大工夫才找到解决方法: 存的时候不变,取的时候根据自己所在时区调整时间。这是sqlite中的一个函数datetime所做的工作。
读取时的方法:
[java] view plainprint?
<span style="font-size:12px;">Cursor cursor = db.rawQuery("selectweight,datetime(timestamp,'localtime') from tb3",null);
String myDate =cursor.getString(cursor.getColumnIndex("datetime(timestamp,'localtime')"));
SimpleDateFormat format = newSimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = format.parse(myDate);</span>
插入数据时,由于timestamp和id能自动生成,只需插入体重数据:
ContentValues values=newContentValues();
double nowWeight = Double.parseDouble(weightStr);
values.put("weight", nowWeight);
db = sqlHelper.getWritableDatabase();
db.insert("tb3", null,values);
db.close();