博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一篇文章吃透iOS、JS的时间日期(Date, Calendar, Locale, TimeZone)
阅读量:5099 次
发布时间:2019-06-13

本文共 3928 字,大约阅读时间需要 13 分钟。

iOS

时间相关类

  • NSDate - 表示一个绝对的时间点。
  • NSCalendar - 代表一个特定的日历,例如公历或者希伯来日历。它提供了一系列基于日期的计算,并且可以让你在"NSDate"和"NSDateComponents"对象之间进行转换。
  • NSDateComponents - 允许你获取一个Date的特定内容,例如小时、分钟、年月日等等。
  • NSTimeZone - 代表一个特定的时区信息,可以帮助跨时区的计算任务。

代码分析

废话少说,Show me the code

/**     * 日历     */    //公历    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; NSDate *date = [NSDate new]; NSLog(@"%ld-%ld-%ld", [calendar component:NSCalendarUnitYear fromDate:date], [calendar component:NSCalendarUnitMonth fromDate:date], [calendar component:NSCalendarUnitDay fromDate:date]); // 公历:2018-5-9 //佛历 calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierBuddhist]; NSLog(@"%ld-%ld-%ld", [calendar component:NSCalendarUnitYear fromDate:date], [calendar component:NSCalendarUnitMonth fromDate:date], [calendar component:NSCalendarUnitDay fromDate:date]); // 佛历:2561-5-9 //日本日历 calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierJapanese]; NSLog(@"%ld-%ld-%ld", [calendar component:NSCalendarUnitYear fromDate:date], [calendar component:NSCalendarUnitMonth fromDate:date], [calendar component:NSCalendarUnitDay fromDate:date]); // 日本日历:30-5-9 /** * 地区 */ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateStyle:NSDateFormatterLongStyle]; [dateFormatter setTimeStyle:NSDateFormatterLongStyle]; NSString *formattedDateString = [dateFormatter stringFromDate:date]; NSLog(@"Default Locale Formatted Date:%@", formattedDateString); // 系统为公历:Default Locale Formatted Date:9 May 2018 at 4:25:06 PM GMT+8 // 系统为佛历:Default Locale Formatted Date:9 May 2561 BE at 4:21:29 PM GMT+8 //中国Locale dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]; formattedDateString = [dateFormatter stringFromDate:date]; NSLog(@"ZH Locale Formatted Date:%@", formattedDateString); // ZH Locale Formatted Date:2018年5月9日 GMT+8 下午4:21:29 /** * 时区 */ dateFormatter.timeZone = [NSTimeZone timeZoneWithName:@"GMT"]; formattedDateString = [dateFormatter stringFromDate:date]; NSLog(@"GMT Timezone Formatted Date:%@", formattedDateString); // GMT Timezone Formatted Date:2018年5月9日 GMT 上午8:21:29 /** * NSDateComponents */ // Yearless date NSDateComponents *components = [[NSDateComponents alloc] init]; [components setMonth:11]; [components setDay:7]; NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; NSDate *birthday = [gregorian dateFromComponents:components]; formattedDateString = [dateFormatter stringFromDate:birthday]; NSLog(@"GMT Timezone Formatted Date:%@", formattedDateString); // GMT Timezone Formatted Date:1年11月6日 GMT 下午3:54:17

JavaScript

关于JavaScript的Date对象可以参考以下链接:

获取Date属性

const birthday = new Date(1980, 6, 31); birthday.getFullYear(); // 1980 birthday.getMonth(); // 6 birthday.getDate(); // 31 birthday.getDay(); // 4 birthday.getHours(); // 0 birthday.getMinutes(); // 0 birthday.getSeconds(); // 0 birthday.getMilliseconds(); // 0 birthday.getTime(); // 333849600000 (for GMT)

Date格式化

var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; var today = new Date(); today.toLocaleDateString("en-US"); // 5/9/2018 today.toLocaleDateString("en-US",options); // Wednesday, May 9, 2018 today.toLocaleDateString("hi-IN", options); // बुधवार, 9 मई 2018

Moment.js

 -Parse, validate, manipulate, and display dates and times in JavaScript。Moment是一个非常强大的JavaScript时间日期库,是对原生对象的很好的扩展。

//Formatmoment().format('MMMM Do YYYY, h:mm:ss a'); // May 9th 2018, 8:05:15 pm//Calendar Time moment().add(10, 'days').calendar(); //Multiple Locale Support moment.locale(); // en //TimeZone var jun = moment("2014-06-01T12:00:00Z"); var dec = moment("2014-12-01T12:00:00Z"); jun.tz('America/Los_Angeles').format('ha z'); // 5am PDT dec.tz('America/Los_Angeles').format('ha z'); // 4am PST

目前还有一个更新、更现代的时间日期库:,可以尝试一下。

转载于:https://www.cnblogs.com/wdsunny/p/9026802.html

你可能感兴趣的文章
Python pandas 0.19.1 Intro to Data Structures 数据结构介绍 文档翻译
查看>>
《寿康宝鉴》
查看>>
Mongodb
查看>>
软工个人总结
查看>>
如何将u盘、移动硬盘转化为活动分区--绝招
查看>>
MYSQL 5.7 修改密码、登录问题
查看>>
linux 同步时间 调试core内核
查看>>
PAT Basic 1085
查看>>
springMVC传递一组对象的接受方式
查看>>
收藏一个虚函数表以及虚表指针介绍的文章
查看>>
POJ---2492 A Bug's Life[并查集]
查看>>
[BZOJ1195] [HNOI2006]最短母串
查看>>
final阶段140字评论
查看>>
zookeeper集群搭建
查看>>
Jenkins-在windows上配置自动化部署(Jenkins+Gitblit)
查看>>
ng-if可见
查看>>
[AGC003]E - Sequential operations on Sequence
查看>>
Effective JAVA 思维导图
查看>>
【转】mysqldump
查看>>
Python Matplotlib作图指南
查看>>