iOS开发-Masonry约束宽高比

先看看Masonry的源代码,可以发现两个属性
这两个属性可以设置视图中的宽高比例
使用multipliedBy必须是对同一个控件本身,比如,上面的代码中,我们都是对bottomInnerView.mas_width本身的,如果修改成相对于其它控件,会出问题。

//multipler属性表示约束值为约束对象的乘因数
– (MASConstraint * (^)(CGFloat multiplier))multipliedBy;

//dividedBy属性表示约束值为约束对象的除因数,可用于设置view的宽高比
– (MASConstraint * (^)(CGFloat divider))dividedBy;

具体使用

// width/height比为1/3.0,要求是同一个控件的属性比例
[bottomInnerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.bottom.mas_equalTo(bottomView);
make.center.mas_equalTo(bottomView);
// 注意,这个multipliedBy的使用只能是设置同一个控件的,比如这里的bottomInnerView,
// 设置高/宽为3:1
make.height.mas_equalTo(bottomInnerView.mas_width).multipliedBy(3);

make.width.height.mas_equalTo(bottomView).priorityLow();
make.width.height.lessThanOrEqualTo(bottomView);
}];

 

 

2020年农民工监测调查报告

  一、农民工规模、分布及流向   (一)农民工总量减少,流动半径进一步缩小   2020年,各地区各部门坚决贯彻党中央决策部署,统筹疫情防控和经济社会发展,有序推进复工复产,扎实做好“六稳”工作,全面落实“六保”任务,各项稳就业政策不断落实落地,国民经济持续稳定恢复,农民工就业保持总体稳定。2020年全国农民工总量28560万人,比上年减少517万人,下降1.8%,规模为上年的98.2%。其中,外出农民工16959万人,比上年减少466万人,下降2.7%;本地农民工11601万人,比上年减少51万人,下降0.4%。在外出农民工中,年末在城镇居住的进城农民工13101万人,比上年减少399万人,下降3.0%。 图 1 农民工规模及增速   在外出农民工中,跨省流动农民工7052万人,比上年减少456万人,下降6.1%;在省内就业的外出农民工9907万人,比上年减少10万人,与上年基本持平。省内就业农民工占外出农民工的比重为58.4%,比上年提高1.5个百分点。分区域看,东部、中部、西部和东北地区省内就业农民工占外出农民工的比重分别比上年提高1.6、1.3、1.8和1.0个百分点。 表 1 2020年外出农民工地区分布及构成                                           单位:万人、%
按输出地分外出农民工总量构成
外出
农民工 外出
农民工 
跨省流动省内流动跨省流动省内流动
合计1695970529907100.041.658.4
东部地区46247193905100.015.584.5
中部地区621035932617100.057.942.1
西部地区549025572933100.046.653.4
东北地区 635 183 452100.028.871.2   (二)东部地区输出农民工人数减少*多,占到减少总量的一半以上   从输出地看,东部地区输出农民工10124万人,比上年减少292万人,下降2.8%,占农民工总量的35.4%;中部地区输出农民工9447万人,比上年减少172万人,下降1.8%,占农民工总量的33.1%;西部地区输出农民工8034万人,比上年减少17万人,下降0.2%,占农民工总量的28.1%;东北地区输出农民工955万人,比上年减少36万人,下降3.6%,占农民工总量的3.3%。东部地区农民工减少量占到全国农民工减少总量的56.5%。 表 2 农民工地区分布                                          单位: 万人、% 2019年2020年增量增速
按输出地分:   东部地区1041610124-292-2.8
  中部地区 9619 9447-172-1.8
  西部地区 8051 8034 -17-0.2
  东北地区 991 955 -36-3.6
按输入地分:   在东部地区1570015132-568-3.6
  在中部地区 6223 6227  4 0.1
  在西部地区 6173 6279 106 1.7
  在东北地区 895 853 -42-4.7
  在其他地区  86  69 -17-19.8
注:其他地区指港、澳、台及国外。   (三)在东部地区务工人数减少*多,中西部地区吸纳就业的农民工继续增加   从输入地看,在东部地区就业的农民工15132万人,比上年减少568万人,下降3.6%,占农民工总量的53%。其中,在京津冀地区就业的农民工2076万人,比上年减少132万人,下降6.0%;在江浙沪地区就业的农民工5179万人,比上年减少212万人,下降3.9%;在珠三角地区就业的农民工4223万人,比上年减少195万人,下降4.4%。在中部地区就业农民工6227万人,比上年增加4万人,与上年基本持平,占农民工总量的21.8%。在西部地区就业农民工6279万人,比上年增加106万人,增长1.7%,占农民工总量的22.0%。在东北地区就业农民工853万人,比上年减少42万人,下降4.7%,占农民工总量的3.0%。   二、农民工基本特征   (一)女性和有配偶的农民工占比均有所下降   在全部农民工中,男性占65.2%,女性占34.8%。女性占比比上年下降0.3个百分点。其中,外出农民工中女性占30.1%,比上年下降0.6个百分点;本地农民工中女性占39.2%,下降0.2个百分点。   在全部农民工中,未婚的占17.0%,有配偶的占79.9%,丧偶或离婚的占3.1%;有配偶的占比比上年下降0.3个百分点。其中,外出农民工有配偶的占68.1%,比上年下降0.7个百分点;本地农民工有配偶的占91.1%,下降0.2个百分点。   (二)农民工平均年龄继续提高   农民工平均年龄为41.4岁,比上年提高0.6岁。从年龄结构看,40岁及以下农民工所占比重为49.4%,比上年下降1.2个百分点;50岁以上农民工所占比重为26.4%,比上年提高1.8个百分点,占比继续提高。从农民工的就业地看,本地农民工平均年龄46.1岁,其中40岁及以下所占比重为32.9%,50岁以上所占比重为38.1%;外出农民工平均年龄为36.6岁,其中40岁及以下所占比重为66.8%,50岁以上所占比重为14.2%。 表 3 农民工年龄构成                                             单位: % 2016年2017年2018年2019年2020年
16-20岁 3.3 2.6 2.4 2.0 1.6
21-30岁28.627.325.223.121.1
31-40岁22.022.524.525.526.7
41-50岁27.026.325.524.824.2
50岁以上19.121.322.424.626.4   (三)大专及以上学历农民工占比提高   在全部农民工中,未上过学的占1%,小学文化程度占14.7%,初中文化程度占55.4%,高中文化程度占16.7%,大专及以上占12.2%。大专及以上文化程度农民工所占比重比上年提高1.1个百分点。在外出农民工中,大专及以上文化程度的占16.5%,比上年提高1.7个百分点;在本地农民工中,大专及以上文化程度的占8.1%,提高0.5个百分点。   三、农民工就业状况   (一)在第三产业就业的农民工比重继续提高   从事第三产业的农民工比重为51.5%,比上年提高0.5个百分点。其中,从事批发和零售业的农民工比重为12.2%,比上年提高0.2个百分点;从事住宿餐饮业的农民工比重均为6.5%,下降0.4个百分点。在第三产业其他行业中,从事卫生和社会工作,公共管理、社会保障和社会组织的比重有所增加。从事第二产业的农民工比重为48.1%,比上年下降0.5个百分点。其中,从事制造业的农民工比重为27.3%,比上年下降0.1个百分点;从事建筑业的农民工比重为18.3%,下降0.4个百分点。 表 4 农民工从业行业分布                                          单位:%、百分点 2019年2020年增减
*产业 0.4 0.4 0.0
第二产业48.648.1-0.5
 其中:制造业27.427.3-0.1
    建筑业18.718.3-0.4
第三产业51.051.50.5
 其中:批发和零售业12.012.20.2
    交通运输仓储邮政业6.96.90.0
    住宿餐饮业6.96.5-0.4
    居民服务修理和其他服务业12.312.40.1
    其他12.913.50.6   (二)本地农民工月均收入增速快于外出农民工   农民工月均收入4072元,比上年增加110元,增长2.8%。其中,外出农民工月均收入4549元,比上年增加122元,增长2.7%;本地农民工月均收入3606元,比上年增加106元,增长3.0%,增速快于外出农民工。   (三)东部地区农民工月均收入增速快于其他地区   分地区看,在各地区就业的农民工月均收入均有增长。其中,在东部地区就业的农民工月均收入4351元,比上年增加129元,增长3.1%;在中部地区就业的农民工月均收入3866元,比上年增加72元,增长1.9%;在西部地区就业的农民工月均收入3808元,比上年增加85元,增长2.3%;在东北地区就业的农民工月均收入3574元,比上年增加105元,增长3.0%。   (四)制造业农民工月均收入增速*快   分行业看,农民工就业集中的六大主要行业月均收入继续增长。其中,从事制造业农民工月均收入4096元,比上年增加138元,增长3.5%;从事交通运输仓储和邮政业农民工月均收入4814元,比上年增加147元,增长3.1%;从事建筑业农民工月均收入4699元,比上年增加132元,增长2.9%;从事住宿餐饮业农民工月均收入3358元,比上年增加69元,增长2.1%;从事批发和零售业农民工月均收入3532元,比上年增加60元,增长1.7%;从事居民服务修理和其他服务业农民工月均收入3387元,比上年增加50元,增长1.5%。 表 5 分行业农民工月均收入及增速                                            单位:元、% 2019年2020年增速
合计396240722.8
制造业395840963.5
建筑业456746992.9
批发和零售业347235321.7
交通运输仓储邮政业466748143.1
住宿餐饮业328933582.1
居民服务修理和其他服务业333733871.5   四、进城农民工居住状况   (一)人均居住面积不断提高   进城农民工人均居住面积21.5平方米,比上年提高1.1平方米,在不同规模城市的农民工人均居住面积均有增加。分城市规模看,农民工所在城市规模越小,人均居住面积越高。2020年,进城农民工在500万人以上城市居住的人均居住面积为16.9平方米,在500万人以下城市居住的人均居住面积均超过20平方米。 图2 按城市规模分的进城农民工人均居住面积   (二)居住设施继续改善   进城农民工户中,居住住房中有电冰箱的占67.0%,比上年提高1.3个百分点;有洗衣机的占68.1%,提高2.0个百分点;有洗澡设施的占85.4%,提高1.7个百分点;有独用厕所的占71.5%,提高1.9个百分点;能上网的占94.8%,与上年持平。拥有汽车(包括经营用车)的进城农民工户占30.8%,比上年提高2.6个百分点。   五、进城农民工随迁儿童教育情况   (一)3-5岁儿童入园率有所提高   3-5岁随迁儿童入园率(含学前班)为86.1%,比上年提高0.3个百分点。入园儿童中,28.9%在公办幼儿园,比上年提高3.7个百分点;37.2%在普惠性民办幼儿园,比上年提高1.5个百分点。   (二)义务教育阶段儿童在校率与上年基本持平   义务教育年龄段随迁儿童的在校率为99.4%,与上年基本持平。从就读的学校类型看,小学年龄段随迁儿童81.5%在公办学校就读,比上年下降1.9个百分点;12.4%在有政府资助的民办学校就读,比上年提高0.5个百分点。初中年龄段随迁儿童87.0%在公办学校就读,比上年提高1.8个百分点;7.1%在有政府资助的民办学校就读,比上年下降1.7个百分点。   (三)义务教育阶段儿童上学面临的问题有所改善   对于义务教育阶段的随迁儿童,47.5%的农民工家长反映在城市上学面临一些问题,比上年下降3.4个百分点。本地升学难、费用高、孩子没人照顾是农民工家长认同度*高的三个主要问题,认同率分别为29.6%、26.4%和21.5%。其中,本地升学难和费用高认同率较上年分别下降了4.6和2.5个百分点,孩子没人照顾的认同率较上年提高了6.0个百分点。回答学校师资条件不好的农民工所占比重增加较快,比上年提高4.6个百分点。   六、进城农民工社会融合情况   (一)进城农民工对所在城市的归属感和适应度不断增强   进城农民工中,41.4%认为自己是所居住城市的“本地人”,比上年提高1.4个百分点。从进城农民工对本地生活的适应情况看,83.3%表示对本地生活非常适应和比较适应,其中,23.8%表示非常适应,比上年提高3.0个百分点;仅有1.2%表示不太适应和非常不适应。进城农民工在不同规模城市生活的归属感较上年均有提高,城市规模越小,农民工对所在城市的归属感越强。在100-300万人城市农民工归属感提高*多,在50万人以下城市农民工对本地生活非常适应的比重提高*多。   (二)进城农民工业余生活满意度提高   从进城农民工对业余生活的满意度看,60.5%表示对业余生活非常满意和比较满意,比上年提高7.6个百分点;36.1%表示一般,下降6.2个百分点;3.4%表示不太满意和非常不满意,下降1.4个百分点。   (三)进城农民工参加所在社区、工会组织的活动更加积*   在进城农民工中,29.3%参加过所在社区组织的活动,比上年提高1.7个百分点,其中,3.9%经常参加,25.4%偶尔参加。加入工会组织的进城农民工占已就业进城农民工的比重为14.3%,比上年提高0.9个百分点。在已加入工会的农民工中,参加过工会活动的占85.8%,比上年提高1.6个百分点。   附注:   1.调查简介   农民工监测调查:为准确反映全国农民工规模、流向、分布等情况,国家统计局2008年建立农民工监测调查制度,在农民工输出地开展监测调查。调查范围是全国31个省(自治区、直辖市)的农村地域,在1587个调查县(区)抽选了8488个村和22.6万名农村劳动力作为调查样本。采用入户访问调查的形式,按季度进行调查。   农民工市民化调查:为准确反映在新型城镇化建设中农民工在城镇就业生活、居住状况和社会融合等基本情况,国家统计局2015年建立农民工市民化进程动态监测调查制度(简称农民工市民化调查)。调查范围是全国31个省(自治区、直辖市)的城镇地域,随机抽取了4.06万户进城农民工样本,由调查员使用手持电子采集终端(PAD),直接入户面访的形式采集数据。   2.主要指标解释   农民工:指户籍仍在农村,年内在本地从事非农产业或外出从业6个月及以上的劳动者。   本地农民工:指在户籍所在乡镇地域以内从业的农民工。   外出农民工:指在户籍所在乡镇地域外从业的农民工。   进城农民工:指年末居住在城镇地域内的农民工。城镇地域为根据国家统计局《统计上划分城乡的规定》划分的区域,与计算人口城镇化率的地域范围相一致。   东部地区:包括北京、天津、河北、上海、江苏、浙江、福建、山东、广东、海南10个省(直辖市)。   中部地区:包括山西、安徽、江西、河南、湖北、湖南6省。   西部地区:包括内蒙古、广西、重庆、四川、贵州、云南、西藏、陕西、甘肃、青海、宁夏、新疆12个省(直辖市、自治区)。   东北地区:辽宁、吉林、黑龙江3个省。   城市类型:按2015年城区常住人口规模将城市划分为500万人以上城市、300-500万人城市、100-300万人城市、50-100万人城市、50万人以下城市。

前端开发:Mac安装NVM报错curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

之前在Mac电脑上安装nvm的时候,遇到安装不成功报错,然后提示的报错信息是:

curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

 

报错截图如下:

%title插图%num

经过分析之后得出结论,是因为GitHub的一些域名的DNS解析被污染造成的DNS解析过程无法通过域名获取正确的IP地址,也就造成在安装的时候失败,失败的原因是没有初始化引起的。

 

解决步骤如下所示:

1.打开链接 https://www.ipaddress.com/  然后在网页里面输入访问不了的域名,即raw.githubusercontent.com ;

 

2.查询一下域名raw.githubusercontent.com 对应的正确的IP地址;

 

3.然后在Mac电脑本机上面的host文件里替换系统的host文件,打开电脑Finder,然后使用快捷键组合:Shift + Command+g 前往文件夹,输入/etc/hosts  点击“前往”,

%title插图%num

直接进入系统hosts文件所在目录下,直接双击打开hosts文件;

%title插图%num

4. 在本机电脑打开的hosts文件里填写:

199.232.68.133 raw.githubusercontent.com

199.232.68.133 user-images.githubusercontent.com

199.232.68.133 avatars22.githubusercontent.com

199.232.68.133 avatars11.githubusercontent.com

%title插图%num

5.然后保存,就完美的解决了上述报错问题;

 

6.*后就可以成功安装nvm啦。

Android与IOS中获取时间戳的方法

什么是时间戳?

时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)至当前时间的总秒数。它也被称为 Unix 时间戳(Unix Timestamp)。

iOS中获取毫秒时间戳获取方法:

UInt64 recordTime = [[NSDate date] timeIntervalSince1970]*1000;
  • 1

首先 [[NSDate date] timeIntervalSince1970] 是可以获取到后面的毫秒 微秒的 ,只是在保存的时候省略掉了, 如一个时间戳不省略的情况下为 1395399556.862046 ,省略掉后为一般所见 1395399556 。
所以想取得毫秒时用获取到的时间戳 * 1000 ,想取得微秒时 用取到的时间戳 * 1000 * 1000 。

NSDateFormatter * formatter = [[NSDateFormatter alloc ] init];  
[formatter setDateFormat:@"YYYY-MM-dd hh:mm:ss:SSS"];    
NSString *date =  [formatter stringFromDate:[NSDate date]];  
NSString *timeLocal = [[NSString alloc] initWithFormat:@"%@", date]; 
NSLog(@"%@", timeLocal);
  • 1
  • 2
  • 3
  • 4
  • 5

Android 中获取时间戳的方法

1.获取当前时间

import   java.text.SimpleDateFormat;      
  SimpleDateFormat   formatter   =   new   SimpleDateFormat   ("yyyy年MM月dd日   HH:mm:ss");     
  Date curDate =  new Date(System.currentTimeMillis());  //毫秒级
//获取当前时间  
  String  str = formatter.format(curDate);  

 

 

2.获取系统时间

//取得系统时间  
//1。  
long time=System.currentTimeMillis();  

//2。  
final Calendar mCalendar=Calendar.getInstance();  
mCalendar.setTimeInMillis(time);  
取得小时:mHour=mCalendar.get(Calendar.HOUR);  
取得分钟:mMinuts=mCalendar.get(Calendar.MINUTE);  

//3。  
Time t=new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone资料  
t.setToNow(); // 取得系统时间。  
int year = t.year;  
int month = t.month;  
int date = t.monthDay;  
int hour = t.hour;    // 0-23  

//4。  
DateFormat df = new SimpleDateFormat("HH:mm:ss");  
df.format(new Date());  

 

 

3.时间工具类

import android.util.Log;        
import java.text.ParseException;        
import java.text.SimpleDateFormat;        
import java.util.Calendar;        
import java.util.Date;        


public class TimeUtils {        

    /**    
     * 获取当前时间    
     * @return    
     */        
    public static String getNowTime(){        
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");        
        Date date = new Date(System.currentTimeMillis());        
        return simpleDateFormat.format(date);        
    }        
    /**    
     * 获取时间戳    
     *    
     * @return 获取时间戳    
     */        
    public static String getTimeString() {        
        SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");        
        Calendar calendar = Calendar.getInstance();        
        return df.format(calendar.getTime());        
    }        
    /**    
     * 时间转换为时间戳    
     * @param time:需要转换的时间    
     * @return    
     */        
    public static String dateToStamp(String time)  {        
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        
        Date date = null;        
        try {        
            date = simpleDateFormat.parse(time);        
        } catch (ParseException e) {        
            e.printStackTrace();        
        }        
        long ts = date.getTime();        
        return String.valueOf(ts);        
    }        

    /**    
     * 时间戳转换为字符串    
     * @param time:时间戳    
     * @return    
     */        
    public static String times(String time) {    
        SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分");    
        @SuppressWarnings("unused")    
        long lcc = Long.valueOf(time);    
        int i = Integer.parseInt(time);    
        String times = sdr.format(new Date(i * 1000L));    
        return times;    

    }       
    /**    
     *获取距现在某一小时的时刻    
     * @param hour hour=-1为上一个小时,hour=1为下一个小时    
     * @return    
     */        
    public static String getLongTime(int hour){        
        Calendar c = Calendar.getInstance(); // 当时的日期和时间        
        int h; // 需要更改的小时        
        h = c.get(Calendar.HOUR_OF_DAY) - hour;        
        c.set(Calendar.HOUR_OF_DAY, h);        
        SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");        
        Log.v("time",df.format(c.getTime()));        
        return df.format(c.getTime());        
    }      
    /**   
     * 比较时间大小   
     * @param str1:要比较的时间   
     * @param str2:要比较的时间   
     * @return   
     */      
    public static boolean isDateOneBigger(String str1, String str2) {      
        boolean isBigger = false;      
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");      
        Date dt1 = null;      
        Date dt2 = null;      
        try {      
            dt1 = sdf.parse(str1);      
            dt2 = sdf.parse(str2);      
        } catch (ParseException e) {      
            e.printStackTrace();      
        }      
        if (dt1.getTime() > dt2.getTime()) {      
            isBigger = true;      
        } else if (dt1.getTime() < dt2.getTime()) {      
            isBigger = false;      
        }      
        return isBigger;      
    }      
}        
  /**  
  * 当地时间 ---> UTC时间  
  * @return  
  */    
 public static String Local2UTC(){    
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    
     sdf.setTimeZone(TimeZone.getTimeZone("gmt"));    
     String gmtTime = sdf.format(new Date());    
     return gmtTime;    
 }    

  /**  
  * UTC时间 ---> 当地时间  
  * @param utcTime   UTC时间  
  * @return  
  */    
 public static String utc2Local(String utcTime) {    
     SimpleDateFormat utcFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//UTC时间格式    
     utcFormater.setTimeZone(TimeZone.getTimeZone("UTC"));    
     Date gpsUTCDate = null;    
     try {    
         gpsUTCDate = utcFormater.parse(utcTime);    
     } catch (ParseException e) {    
         e.printStackTrace();    
     }    
     SimpleDateFormat localFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//当地时间格式    
     localFormater.setTimeZone(TimeZone.getDefault());    
     String localTime = localFormater.format(gpsUTCDate.getTime());    
     return localTime;    
 }   

 

 

使用案例:

package com.example.time;  

import java.text.ParseException;  
import java.text.SimpleDateFormat;  
import java.util.Date;  
import java.util.TimeZone;  

import android.app.Activity;  
import android.os.Bundle;  

public class MainActivity extends Activity {  

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  

        new Thread(){  
            public void run() {  
                String time = Local2UTC("2018-03-19 19:41:44");  
                System.out.println("time"+time);  
            };  
        }.start();  
    }  
    /** 
     * 将本地时间转为UTC时间 
     * @param strDate:需要转化的date 
     * @return 
     */  
    public String Local2UTC(String strDate){    
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
         String gmtTime = "";  
         sdf.setTimeZone(TimeZone.getTimeZone("gmt"));    
         gmtTime = sdf.format(stringToDate(strDate, "yyyy-MM-dd HH:mm:ss"));  
         return gmtTime;    
     }    
    /** 
     * 将string类型转换为date类型 
     * @param strTime:要转换的string类型的时间,时间格式必须要与formatType的时间格式相同 
     * @param formatType:要转换的格式yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日 
     * @return 
     */  
    private Date stringToDate(String strTime, String formatType){  
        SimpleDateFormat formatter = new SimpleDateFormat(formatType);  
        Date date = null;  
        try {  
            date = (Date) formatter.parse(strTime);  
        } catch (ParseException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
        return date;  
    }  

}  

 

 

Unity中获取时间戳的方法

 

  /// 获取当前时间戳
    /// </summary>
    /// <param name="bflag">为真时获取10位时间戳,为假时获取13位时间戳.</param>
    /// <returns></returns>
    public static long GetTimeStamp(bool bflag = true)
    {
        TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
        long ret;
        if (bflag)
            ret = Convert.ToInt64(ts.TotalSeconds);
        else
            ret = Convert.ToInt64(ts.TotalMilliseconds);
        return ret;
    }


    static DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
    public static string NormalizeTimpstamp0(long timpStamp)
    {
        long unixTime = timpStamp * 10000000L;
        TimeSpan toNow = new TimeSpan(unixTime);
        DateTime dt = dtStart.Add(toNow);
        return dt.ToString("yyyy-MM-dd");
    }


    /// <summary>
    /// 时钟式倒计时
    /// </summary>
    /// <param name="second"></param>
    /// <returns></returns>
    public string GetSecondString(int second)
    {
        return string.Format("{0:D2}", second / 3600) + string.Format("{0:D2}", second % 3600 / 60) + ":" + string.Format("{0:D2}", second % 60);
    }


    /// 将Unix时间戳转换为DateTime类型时间
    /// </summary>
    /// <param name="d">double 型数字</param>
    /// <returns>DateTime</returns>
    public static System.DateTime ConvertIntDateTime(double d)
    {
        System.DateTime time = System.DateTime.MinValue;
        System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0));
        Debug.Log(startTime);
        time = startTime.AddSeconds(d);
        return time;
    }


    /// <summary>
    /// 将c# DateTime时间格式转换为Unix时间戳格式
    /// </summary>
    /// <param name="time">时间</param>
    /// <returns>double</returns>
    public static double ConvertDateTimeInt(System.DateTime time)
    {
        double intResult = 0;
        System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
        intResult = (time - startTime).TotalSeconds;
        return intResult;
    }


    /// <summary>
    /// 日期转换成unix时间戳
    /// </summary>
    /// <param name="dateTime"></param>
    /// <returns></returns>
    public static long DateTimeToUnixTimestamp(DateTime dateTime)
    {
        var start = new DateTime(1970, 1, 1, 0, 0, 0, dateTime.Kind);
        return Convert.ToInt64((dateTime - start).TotalSeconds);
    }


    /// <summary>
    /// unix时间戳转换成日期
    /// </summary>
    /// <param name="unixTimeStamp">时间戳(秒)</param>
    /// <returns></returns>
    public static DateTime UnixTimestampToDateTime(DateTime target, long timestamp)
    {
        DateTime start = new DateTime(1970, 1, 1, 0, 0, 0, target.Kind);
        return start.AddSeconds(timestamp);
    }

iOS开发:获取当前时间、当前时间戳(秒/毫秒)的方法

虽然之前总结整理过一篇关于iOS开发过程中时间和时间戳的博文,但是不是太完善,那么本章博文就来把之前那篇文章没有总结到的内容整理出来,依然只分享给有需要的人。具体内容如下所示。

一、获取当前时间

+(NSString*)getCurrentTimes {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

// 设置想要的格式,hh与HH的区别:分别表示12小时制,24小时制

[formatter setDateFormat:@”YYYY-MM-dd HH:mm:ss”];

NSDate *dateNow = [NSDate date];

//把NSDate按formatter格式转成NSString

NSString *currentTime = [formatter stringFromDate:dateNow];

return currentTime;

}

二、获取当前时间的时间戳

获取当前时间的时间戳有两种方法,*种是以秒为单位的,另一种是以毫秒为单位的,一定要根据实际情况来使用处理。

1、获取当前时间戳有两种方法(以秒为单位)

+(NSString *)getNowTimeStamp {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;

[formatter setDateStyle:NSDateFormatterMediumStyle];

[formatter setTimeStyle:NSDateFormatterShortStyle];

[formatter setDateFormat:@”YYYY-MM-dd HH:mm:ss”]; // 设置想要的格式,hh与HH的区别:分别表示12小时制,24小时制

//设置时区,这一点对时间的处理很重要

NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@”Asia/Shanghai”];

[formatter setTimeZone:timeZone];

NSDate *dateNow = [NSDate date];

NSString *timeStamp = [NSString stringWithFormat:@”%ld”, (long)[dateNow timeIntervalSince1970]];

return timeStamp;

}

+(NSString *)getNowTimeStamp2 {
NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:0];

NSTimeInterval a=[dat timeIntervalSince1970];

NSString*timeString = [NSString stringWithFormat:@”%0.f”, a];//转为字符型

return timeString;

}

2、获取当前时间戳 (以毫秒为单位)

+(NSString *)getNowTimeTimestamp3{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;

[formatter setDateStyle:NSDateFormatterMediumStyle];

[formatter setTimeStyle:NSDateFormatterShortStyle];

[formatter setDateFormat:@”YYYY-MM-dd HH:mm:ss SSS”]; // 设置想要的格式,hh与HH的区别:分别表示12小时制,24小时制

//设置时区,这一点对时间的处理有时很重要

NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@”Asia/Shanghai”];

[formatter setTimeZone:timeZone];

NSDate *datenow = [NSDate date];

NSString *timeSp = [NSString stringWithFormat:@”%ld”, (long)[datenow timeIntervalSince1970]*1000];

return timeSp;

}

代码实例如下:

%title插图%num

另附获取当前时间的方法步骤,仅供参考,具体如下图所示:

%title插图%num