android時間轉換成時間戳
❶ android 時間滾輪怎麼把選擇的每個選項合並後轉換成時間戳
1、添加compile:(這個庫里用到了fastjson)
compile 'cn.qqtheme.framework:WheelPicker:1.2.3'
compile 'com.alibaba:fastjson:1.2.18'1212
2、assets文件夾下添加city.json,如下圖:
3、代碼中使用:
/**
* 地區選擇器
*/
private void showRegionPicker() {
try {
final ArrayList<AddressPicker.Province> data = new ArrayList<>();
String json = ConvertUtils.toString(getAssets().open("city.json"));
data.addAll(JSON.parseArray(json, AddressPicker.Province.class));
final AddressPicker picker
❷ 微信小程序——時間戳與Date對象的那些事
做過web開發的小夥伴們多少會遇到時間轉換問題在Chrome瀏覽器和Safari瀏覽器的不同,報錯或者時間格式等等,這里我就分享一下我在開發過程中遇到的一些問題
關於時間問題,做過日歷的都知道,全球化時區處理,或者時間格式,或者時間戳轉化,這里我就這幾種情況一一討論
由於微信小程序的部分業務需要預定,所以會出現國外預定到國內時間會有偏差的問題,根本原因還是在於new Date(),它會獲取當前系統時間,大部分手機是設置的是自動時間,所以會出現時區的偏差問題。
思考 :如果產品是某地的,那麼預定時間應該為對應地的時區計算。所以需要維護定位與時區之間的關系
關於時區計算,因為我這邊只用到了北京時間的情況,舉個例子:
Safari瀏覽器中,進行 new Date("yyyy-MM-dd hh:mm:ss") 的時候,會出現報錯Invalid Date,或者轉換出問題的情況,原因是Safari並不支持此格式,所以需要調整格式化的方式。
ECMA-262 標准中( Date Time String Format )將日期格式規定為 YYYY-MM-DDTHH:mm:ss.sssZ ,其中, T 標識時間開始, Z 為相對於UTC(協調世界時 - International Atomic Time)的時間偏移量,可為 Z , +HH:mm 或 -HH:mm 。
思考 :要麼正則替換為標準的 / 分割,要麼在中間空白處加上 T ,看自己喜好
看文檔是支持直接毫秒數時間戳轉Date對象的,正常操作也是如此。
PS :但是在微信小程序的iOS端轉過來的實際時間是UTC的時間,所以需要同步為當前時區時間,為了不影響Android的時間結果,所以通過轉換2次的方式解決時間計算問題。
ECMA-262 標准來源參考: https://www.jianshu.com/p/a11196377048
❸ android開發,long型時間怎麼取出對應的年月日
long類型的時間說明獲取得到的是時間戳,具體轉換可參考以下代碼
java">//mill為你龍類型的時間戳
Datedate=newDate(mill);
Stringstrs="";
try{
//yyyy表示年MM表示月dd表示日
//yyyy-MM-dd是日期的格式,比如2015-12-12如果你要得到2015年12月12日就換成yyyy年MM月dd日
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
//進行格式化
strs=sdf.format(date);
System.out.println(strs);
}catch(Exceptione){
e.printStackTrace();
}
❹ 如何用Android寫一個時間戳編碼程序『
這是我項目中正在用的時間戳,沒經過整理,你看下
package com.tianwei.utils;
import android.net.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* Created by GT on 2017/8/22.
* 註:Uinix和Windows時間不同
*/
public class Time {
public void Time() {
}
//格式時間
public static String systemTime(String time) {
SimpleDateFormat sDateFormat = null;
if (time != null && time.length() > 0) {
sDateFormat = new SimpleDateFormat(time);
} else {
sDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
}
String date = sDateFormat.format(new java.util.Date());
return date;
}
//無格式時間
public static String systemTime() {
SimpleDateFormat sDateFormat = null;
sDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String date = sDateFormat.format(new java.util.Date());
return date;
}
/*
* 將時間戳轉換為時間
*/
public static String stampToDate(String s, String time) {
String res;
SimpleDateFormat simpleDateFormat;
if (time == null && time.length() > 0) {
simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
} else {
simpleDateFormat = new SimpleDateFormat(time);
}
long lt = new Long(s);
Date date = new Date(lt);
res = simpleDateFormat.format(date);
return res;
}
/*
* 將時間轉換為時間戳
*/
public static String dateToStamp(String s) throws ParseException {
String res;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = simpleDateFormat.parse(s);
} catch (java.text.ParseException e) {
e.printStackTrace();
}
long ts = date.getTime();
res = String.valueOf(ts);
return res;
}
/**
* 系統時間戳
*/
public static long dataStampDate() {
long s = System.currentTimeMillis();
// long s = new Date().getTime();
// long s = Calendar.getInstance().getTimeInMillis();
return s;
}
/**
* Unix
* 時間戳轉換成日期格式
*
* @param timestampString
* @param formats
* @return
*/
public static String timeStampUnixDate(String timestampString, String formats) {
Long timestamp = Long.parseLong(timestampString) * 1000;
String date = new java.text.SimpleDateFormat(formats).format(new java.util.Date(timestamp));
return date;
}
/**
* Unix
* 日期格式字元串轉換成時間戳
*
* @param dateStr 字元串日期
* @param format 如:yyyy-MM-dd HH:mm:ss
* @return
*/
public static String dateUinxTimeStamp(String dateStr, String format) {
try {
SimpleDateFormat sdf = null;
if (format != null && format.length() > 0) {
sdf = new SimpleDateFormat(format);
} else {
sdf = new SimpleDateFormat("yyyyMMddhhmmss");
}
return String.valueOf(sdf.parse(dateStr).getTime() / 1000);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**
* 兩個時間間的時間戳計算函數
*
* @param beginDate
* @param endDate
* @param f 時間差的形式0:秒,1:分種,2:小時,3:天
* @return long 秒
*/
public static long getDifference(Date beginDate, Date endDate, int f) {
long result = 0;
if (beginDate == null || endDate == null) {
return 0;
}
try {
// 日期相減獲取日期差X(單位:毫秒)
long millisecond = endDate.getTime() - beginDate.getTime();
/**
* Math.abs((int)(millisecond/1000)); 絕對值 1秒 = 1000毫秒
* millisecond/1000 --> 秒 millisecond/1000*60 - > 分鍾
* millisecond/(1000*60*60) -- > 小時 millisecond/(1000*60*60*24) -->
* 天
* */
switch (f) {
case 0: // second
return (millisecond / 1000);
case 1: // minute
return (millisecond / (1000 * 60));
case 2: // hour
return (millisecond / (1000 * 60 * 60));
case 3: // day
return (millisecond / (1000 * 60 * 60 * 24));
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 計算時間差
*
* @param starTime 開始時間
* @param endTime 結束時間
* @return 返回時間差
* @param返回類型==1----天,時,分。 ==2----時
*/
public String getTimeDifference(String starTime, String endTime) {
String timeString = "";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
try {
Date parse = dateFormat.parse(starTime);
Date parse1 = dateFormat.parse(endTime);
long diff = parse1.getTime() - parse.getTime();
long day = diff / (24 * 60 * 60 * 1000);
long hour = (diff / (60 * 60 * 1000) - day * 24);
long min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
long s = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
long ms = (diff - day * 24 * 60 * 60 * 1000 - hour * 60 * 60 * 1000
- min * 60 * 1000 - s * 1000);
// System.out.println(day + "天" + hour + "小時" + min + "分" + s +
// "秒");
long hour1 = diff / (60 * 60 * 1000);
String hourString = hour1 + "";
long min1 = ((diff / (60 * 1000)) - hour1 * 60);
timeString = hour1 + "小時" + min1 + "分";
// System.out.println(day + "天" + hour + "小時" + min + "分" + s +
// "秒");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (java.text.ParseException e) {
e.printStackTrace();
}
return timeString;
}
/**
* Java YEAR、MONTH、DAY_OF_MONTH、HOUR加減法,int num +(日期前) -(日期後)
*
* @param num
* @param type
* @return
*/
public static String timeDateCompute(int num, int type) {
// YEAR、MONTH、DAY_OF_MONTH、HOUR 等
Calendar cal = Calendar.getInstance();//使用默認時區和語言環境獲得一個日歷。
if (type > 6) {
return null;
}
switch (type) {
case 0://年
cal.add(Calendar.YEAR, -num);
break;
case 1://月
cal.add(Calendar.MONTH, -num);
break;
case 2://日
cal.add(Calendar.DAY_OF_MONTH, -num);//取當前日期的前num天.
break;
case 3://時
cal.add(Calendar.HOUR_OF_DAY, -num);
break;
case 4://分
cal.add(Calendar.MINUTE, -num);
break;
case 5://秒
cal.add(Calendar.SECOND, -num);
break;
case 6://周
cal.add(Calendar.WEEK_OF_MONTH, -num);
break;
}
//通過格式化輸出日期
SimpleDateFormat format = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
// SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (type == 0) {
System.out.println("Today is: " + format.format(Calendar.getInstance().getTime()));
}
System.out.println("CutNum is: " + format.format(cal.getTime()));
String CutNum = format.format(cal.getTime());
return CutNum;
}
/**
* 時間日期加減(-前,+後)
*
* @param statTime
* @param ymdhms
* @param type
* @return
*/
public String timeNum(Date statTime, int ymdhms, int type) {
String tn = null;
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddhhmmss");
System.out.println("今天的日期:" + df.format(statTime));
System.out.println("兩天前的日期:" + df.format(new Date(statTime.getTime() - 2 * 24 * 60 * 60 * 1000)));
System.out.println("三天後的日期:" + df.format(new Date(statTime.getTime() + 3 * 24 * 60 * 60 * 1000)));
switch (type) {
case 0://年
break;
case 1://月
break;
case 2://日
tn = df.format(new Date(statTime.getTime() - ymdhms * 24 * 60 * 60 * 1000));
break;
case 3://時
tn = df.format(new Date(statTime.getTime() - ymdhms * 60 * 60 * 1000));
break;
case 4://分
tn = df.format(new Date(statTime.getTime() - ymdhms * 60 * 1000));
break;
case 5://秒
tn = df.format(new Date(statTime.getTime() - ymdhms * 1000));
break;
}
return tn;
}
/**
* 時間日期加減(-前,+後)
*
* @param statTime
* @param year
* @param month
* @param day
* @param hour
* @param min
* @param sec
* @return
*/
public String timeNumStr(Date statTime, int year, int month, int day, int hour, int min, int sec) {
String tn = null;
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddhhmmss");
System.out.println("今天的日期:" + df.format(statTime));
System.out.println("兩天前的日期:" + df.format(new Date(statTime.getTime() - 2 * 24 * 60 * 60 * 1000)));
System.out.println("三天後的日期:" + df.format(new Date(statTime.getTime() + 3 * 24 * 60 * 60 * 1000)));
tn = df.format(new Date(statTime.getTime() - day * hour * min * sec * 1000));
return tn;
}
}
❺ 怎麼把指定時間轉為時間戳
每種語言轉換成時間戳的方法都不一樣,你可以去碼工具網上搜時間戳轉換,裡面有各個語言時間戳轉換的方法。
❻ 求助,怎麼將時間轉成時間戳格式
將【北京標准時間】轉換成【格林威治的標准時間】
.參數 要轉換的北京時間, 日期時間型, , 如: 1970-01-01 08:00:00 或 2009年2月9日12時36分36秒
.參數 是否為秒, 邏輯型, 可空 , 設置返回的時間戳記值單位 真:秒 假:毫秒 默認為真
.參數 是否為北京時間, 邏輯型, 可空 , 默認為真
精易模塊的 命令
❼ Android 怎麼獲取當前的時間戳
Android獲取當前時間代碼
//需要引用的
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
//詳細代碼
java.util.Date currentdate = new java.util.Date();//當前時間
//long i = (currentdate.getTime()/1000-timestamp)/(60);
//System.out.println(currentdate.getTime());
//System.out.println(i);
Timestamp now = new Timestamp(System.currentTimeMillis());//獲取系統當前時間
System.out.println("now-->"+now);//返回結果精確到毫秒。
時間戳轉日期
int timestamp = 1310457552; //將這個時間戳轉為日期
return getTime(timestamp);
定義getTime, getDate, IntToLong
public static String getTime(int timestamp){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time= null;
try {
String str = sdf.format(new Timestamp(IntToLong(timestamp)));
time = str.substring(11, 16);
String month = str.substring(5, 7);
String day = str.substring(8,10 );
time =getDate(month, day)+ time;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return time;
}
public static String getDate(String month,String day){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//24小時制
java.util.Date d = new java.util.Date(); ;
String str = sdf.format(d);
String nowmonth = str.substring(5, 7);
String nowday = str.substring(8,10 );
String result = null;
int temp = Integer.parseInt(nowday)-Integer.parseInt(day);
switch (temp) {
case 0:
result="今天";
break;
case 1:
result = "昨天";
break;
case 2:
result = "前天";
break;
default:
StringBuilder sb = new StringBuilder();
sb.append(Integer.parseInt(month)+"月");
sb.append(Integer.parseInt(day)+"日");
result = sb.toString();
break;
}
return result;
}
//java Timestamp構造函數需傳入Long型
public static long IntToLong(int i){
long result = (long)i;
result*=1000;
return result;
}
❽ 如何將android時間戳轉換成時間 android怎麼把時間戳轉換成小時
mysql資料庫的日期欄位類型建議為varchar或者char,存入時間戳。 取出的時候,將時間戳轉換為你需要的時間格式就好。 例: 假設取出值為$time echo date('Y-m-d H:i:s',$time); 你就會看到:2011-11-23 17:42:43的時間格式
❾ android 將時間戳轉為代表"距現在多久之前"的字元串
/**
* 將時間戳轉為代表"距現在多久之前"的字元串
* @param timeStr 時間戳
* @return
*/
public static String getStandardDate(String timeStr) {
StringBuffer sb = new StringBuffer();
long t = Long.parseLong(timeStr);
long time = System.currentTimeMillis() - (t*1000);
long mill = (long) Math.ceil(time /1000);//秒前
long minute = (long) Math.ceil(time/60/1000.0f);// 分鍾前
long hour = (long) Math.ceil(time/60/60/1000.0f);// 小時
long day = (long) Math.ceil(time/24/60/60/1000.0f);// 天前
if (day - 1 > 0) {
sb.append(day + "天");
} else if (hour - 1 > 0) {
if (hour >= 24) {
sb.append("1天");
} else {
sb.append(hour + "小時");
}
} else if (minute - 1 > 0) {
if (minute == 60) {
sb.append("1小時");
} else {
sb.append(minute + "分鍾");
}
} else if (mill - 1 > 0) {
if (mill == 60) {
sb.append("1分鍾");
} else {
sb.append(mill + "秒");
}
} else {
sb.append("剛剛");
}
if (!sb.toString().equals("剛剛")) {
sb.append("前");
}
return sb.toString();
}