转载请注明出处:java积累----ISO8601格式时间转化为Datetime类型
api中如果需要根据时间来做筛选,需要有请求的时间戳。时间参数的日期格式按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ例如,2018-10-11T12:00:00Z(为北京时间2018年10月11日的20点0分0秒。因为北京是8时区,所以UTC时间加上8小时)。
方法如下:
import org.joda.time.*;
import org.joda.time.format.*;
public class Test {
public static void main(String[] args) {
String text = "2018-10-11T11:54:30.207Z";
DateTimeFormatter parser = ISODateTimeFormat.dateTime();
DateTime dt = parser.parseDateTime(text);
DateTimeFormatter formatter = DateTimeFormat.mediumDateTime();
System.out.println(formatter.print(dt));
//转化成其他格式
//日期输出格式
String targetFormat = "yyyy-MM-dd HH:mm:ss";
DateFormat format = new SimpleDateFormat(origFormat);
Date date = format.parse(text);
format = new SimpleDateFormat(targetFormat);
String dateString = format.format(date);
System.out.println(dateString);
//data转化成ISO8601格式时间
TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
df.setTimeZone(tz);
String nowAsISO = df.format(date);
转载请注明出处:java积累----ISO8601格式时间转化为Datetime类型
日期时间解析和处理库
ISO-8601标准格式的日期和时间功能。
最初编写该库是为了允许灵活地解析一系列输入时间戳格式,并着重于ISO-8601时间戳。 解析产生Golang time.Time值。 建立此功能的愿望源于一个用Java编写的较早的项目,该项目中的时间戳输入采用各种格式,必须可靠地读取它们才能生成可用于生成输出文档的时间戳。
使用的代码,可以处理ISO-8601日期,时间段和时间跨度。 该代码在很大程度上未经修改就包含在内,因为它显然已经过优化,并且经过了大量思考和对准确性的仔细关注,从而得到了很好的结果。 包含期间词法检查包,但主要是为了与现有解析功能进行比较而编写的。 由于现有的解析速度快大约3倍,并且已经得益于对正确处理的仔细关注,因此有可能将其删除。
对ISO-8601时间戳记的时间戳记进行加权,以便允许某些不符合规定的格式的已解析输入,只要符合性问题确实允许接
ISO 日期格式:
ISO 日期格式(ISODatetime)是 ISO 8601 标准规定的时间表示方式。云点播如无特别指定,所有时间相关参数统一采用 ISO 8601 表示的 UTC 时间,格式为 YYYY-MM-DDThh:mm:ssZ。如:2018-10-01T10:00:00Z,表示北京时间2018年10月01日18点00分00秒(北京时间值 = UTC 时间值 + 8小时)。
下载腾讯云媒资管理下的视频,回调模式解析返回信息的创建时间:
CreateTime String 媒
今天下午遇到了个大坑,整了半天才搞明白。先说一下需求:将”2018-05-14T03:51:50.153” 这种类型的进行格式转换
首先了解一下UTC(世界协调时间也就是格林尼治时间,和北京时间差了八个小时)时间格式 ISO 8601 日期-时间格式表示:yyyy-mm-ddThh:mm:ss.fffZ,其中 yyyy = 年,mm = 月,dd = 天,T 表示时间部分的开头,hh = 小时,...
java中ISO8601标准时间格式的转换
最近对接第三方平台接口,返回的日期是ISO8601标准时间(yyyy-MM-dd’T’HH:mm:ss.SSS’Z’),例:
"beginTime": "2018-08-07T14:44:04.923+08:00",
"endTime": "2018-08-07T14:54:18.183+08:00"
我这边需要用String格式(yyyy-MM-dd HH:mm:ss)来接收,试了很多方法,有些不能用,还有些不好用,最终选择的转换的方式如下:
先引入jar包:
use DateTime::Format::ISO8601;
my $datetime_str = '2020-07-25T11:32:31';
my $dt = DateTime::Format::ISO8601->parse_datetime($datetime_str);
say $dt;
# This format is ambiguous and could be either a date or time, so use the
# parse_time method.
my $time_str = '113231';
$dt = DateTime::Format::ISO8601->parse_time($time_str);
say $dt;
本文实例讲述了JavaScript将当前时间转换成UTC标准时间的方法。分享给大家供大家参考。具体如下:
这里使用JavaScript将当前时间转换成UTC标准时间,北京在东八区,在北京时间基础上减掉8小时
<!DOCTYPE html>
<p id=demo>
Click the button to display the UTC date and time as a string.
<button onclick=myFunction()>Try it</button>
[removed]
function myFunction()
import datetime
datetime.datetime.now().replace(microsecond=0).isoformat()
UTC到ISO-8601提
但我们会发现传给我们的时间和北京时间差8个小时,这就需要我们自己进行处理
const dt = new Date()
// Date.pares() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数
// 将获得的毫秒数加8个小时的毫秒数
const ts = Date.pa...
最近在开发项目过程中,发现返回的数据中现实的日期与数据库中日期大概相差8小时,这是因为直接从数据库中查询出来的时间是格林威治时间,而不是北京(东八区)时间,所以我们需要做日期格式化,将格林威治时间转为北京时间,代码如下:
@JsonFormat(
shape = JsonFormat.Shape.STRING,
pattern = "yyyy-MM-dd HH:mm:ss",...
做c/s开发,肯定要与时间打交道。
很多时候,获取本地的时间,也就是大陆境内的东八区时间。但是为了保证国际化,服务器往往采用的是0区的时间。之前博客介绍了C++中关于时间的函数:
http://blog.csdn.net/wangshubo1989/article/details/50500515首先明确几个概念:
UTC时间与GMT时间
Greenwich Mean Time (GMT)
mongo-日期类型(1)
当通过mongo shell来插入日期类型数据时,使用new Date()和使用Date()是不一样的:
> db.tianyc04.insert({mark:1, mark_time:new Date()})> db.tianyc04.insert({mark:2, mark_time:Date()})> db.tianyc04.find()
String isoDate = "2018-05-14T03:51:50.153Z" -- ISO8601时间格式
DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTime();
DateTime dateTime = dateTimeFormatter.parseDateTime(isoDate);
func ConverTime(iso8601 string) string {
//这个必须加UTC参数,不加本地测试和服务器上不一致
t, err := time.ParseInLocation(time.RFC3339, iso8601, time.UTC)
if err != nil {
return iso8601
//设置东八区
cz := time.FixedZone("CST", 8*3600)
return t.In(cz).Format("2006-01-02