精华内容
下载资源
问答
  • MySQL可以将存储的UTC时间转换为本地timezon:直接在正常的select语句中执行时间吗?假设你有一些数据带有时间戳(UTC)。CREATE TABLE `SomeDateTable` (`id` int(11) NOT NULL auto_increment,`value` float NOT ...

    MySQL可以将存储的UTC时间转换为本地timezon:直接在正常的select语句中执行时间吗?

    假设你有一些数据带有时间戳(UTC)。

    CREATE TABLE `SomeDateTable` (

    `id` int(11) NOT NULL auto_increment,

    `value` float NOT NULL default '0',

    `date` datetime NOT NULL default '0000-00-00 00:00:00',

    PRIMARY KEY (`id`)

    )

    然后当我

    "select value, date from SomeDateTable";

    我当然可以把它们存储在UTC格式中。

    但是让我们说,我想让他们在另一个时区(与DST),

    然后我可以在选择查询中添加一些魔法,以便在选定的时区中恢复所有日期?

    "select value, TIMEZONE(date, "Europe/Berlin") from SomeDateTable";

    或者我必须在顶部的其他一层做这个,像一些php代码?

    (似乎大多数人都解决了这个问题)。

    谢谢

    约翰

    如果您的MySQL安装允许您使用CONVERT_TZ它是一个非常干净的解决方案,

    此示例显示如何使用它。

    SELECT CONVERT_TZ( '2010-01-01 12:00', 'UTC', 'Europe/Stockholm' )

    但是我不知道这是否是一个很好的方法,因为一些MySQL安装缺少这个功能,请小心使用。

    展开全文
  • java-在Android上将UTC转换为本地时间在我的项目中,我获得了json格式的API响应。 我得到UTC时间格式的时间的字符串值,例如Jul 16, 2013 12:08:59 AM。我需要将其更改为本地时间。那就是我们使用此应用程序需要显示...

    java-在Android上将UTC转换为本地时间

    在我的项目中,我获得了json格式的API响应。 我得到UTC时间格式的时间的字符串值,例如Jul 16, 2013 12:08:59 AM。

    我需要将其更改为本地时间。那就是我们使用此应用程序需要显示当地时间的地方。 我该怎么做?

    这是我尝试过的一些代码:

    String aDate = getValue("dateTime", aEventJson);

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss z");

    simpleDateFormat.setTimeZone(TimeZone.getDefault());

    String formattedDate = simpleDateFormat.format(aDate);

    假设日期包含Jul 16, 2013 12:08:59 AM

    MadTech asked 2020-08-11T19:29:38Z

    5个解决方案

    75 votes

    这是我的尝试:

    String dateStr = "Jul 16, 2013 12:08:59 AM";

    SimpleDateFormat df = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss a", Locale.ENGLISH);

    df.setTimeZone(TimeZone.getTimeZone("UTC"));

    Date date = df.parse(dateStr);

    df.setTimeZone(TimeZone.getDefault());

    String formattedDate = df.format(date);

    还要注意上午/下午标记的“ a” ...

    devconsole answered 2020-08-11T19:29:48Z

    8 votes

    我想贡献现代的答案。 虽然ZoneId.of("Asia/Kolkata")是我们在2013年用于解析和格式化日期时间的类(除了Joda-Time),但它现在已经过时了,我们在DateTimeFormatter或JSR-310(现代Java日期和时间API)方面有很多改进 在2014年随Java 8一起推出。

    但是我听到您说过,大多数Android设备仍未运行Java 8。 幸运的是,您仍然可以通过ThreeTenABP(JSR-310向Android Java 7的反向端口)通过ThreeTenABP在其上使用现代Java日期和时间API。

    现在的代码是:

    DateTimeFormatter formatter

    = DateTimeFormatter.ofPattern("MMM dd, uuuu hh:mm:ss a", Locale.ENGLISH);

    String aDate = "Jul 16, 2013 12:08:59 AM";

    String formattedDate = LocalDateTime.parse(aDate, formatter)

    .atOffset(ZoneOffset.UTC)

    .atZoneSameInstant(ZoneId.systemDefault())

    .format(formatter);

    System.out.println(formattedDate);

    由于我的计算机运行的是欧洲/哥本哈根时区,该时区在7月比UTC早2小时,因此打印

    Jul 16, 2013 02:08:59 AM

    其他要点:

    由于您的字符串中包含AM,因此我假设您的小时数在1到12的AM范围内。要正确解析和格式化它们,您需要在格式模式字符串中使用小写ZoneId.of("Asia/Kolkata")。 大写字母DateTimeFormatter是一天中的0到23。

    最好为格式化程序提供清晰的语言环境(无论是ZoneId.of("Asia/Kolkata")还是DateTimeFormatter)。 如果未提供语言环境,则格式化程序将使用设备的默认语言环境。 “ Jul”和“ AM”是英语,并且您的代码可能在许多设备上都能很好地运行,直到有一天它在具有非英语语言环境且崩溃的设备上运行,并且您很难找出原因。

    如果可以,请明确指定所需的时区,例如ZoneId.of("Asia/Kolkata")。JVM的默认时区可能会被程序的其他部分或运行在同一JVM中的其他程序更改,因此并不可靠。

    Ole V.V. answered 2020-08-11T19:30:41Z

    3 votes

    //your UTC time var

    long time = UTCtime;

    //convert it

    Time timeFormat = new Time();

    timeFormat.set(time+TimeZone.getDefault().getOffset(time));

    //use the value

    long localTime = timeFormat.toMillis(true);

    Tom Brinkkemper answered 2020-08-11T19:30:57Z

    3 votes

    1.本地到UTC转换器

    public static String localToUTC(String dateFormat, String datesToConvert) {

    String dateToReturn = datesToConvert;

    SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);

    sdf.setTimeZone(TimeZone.getDefault());

    Date gmt = null;

    SimpleDateFormat sdfOutPutToSend = new SimpleDateFormat(dateFormat);

    sdfOutPutToSend.setTimeZone(TimeZone.getTimeZone("UTC"));

    try {

    gmt = sdf.parse(datesToConvert);

    dateToReturn = sdfOutPutToSend.format(gmt);

    } catch (ParseException e) {

    e.printStackTrace();

    }

    return dateToReturn;

    }

    2. UTC到本地转换器

    public static String uTCToLocal(String dateFormatInPut, String dateFomratOutPut, String datesToConvert) {

    String dateToReturn = datesToConvert;

    SimpleDateFormat sdf = new SimpleDateFormat(dateFormatInPut);

    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));

    Date gmt = null;

    SimpleDateFormat sdfOutPutToSend = new SimpleDateFormat(dateFomratOutPut);

    sdfOutPutToSend.setTimeZone(TimeZone.getDefault());

    try {

    gmt = sdf.parse(datesToConvert);

    dateToReturn = sdfOutPutToSend.format(gmt);

    } catch (ParseException e) {

    e.printStackTrace();

    }

    return dateToReturn; }

    Ronak Gadhia answered 2020-08-11T19:31:21Z

    2 votes

    使用以下代码。

    TimeZone defaultTimeZone = TimeZone.getDefault();

    String strDefaultTimeZone = defaultTimeZone.getDisplayName(false, TimeZone.SHORT);

    //Your Code

    String aDate = getValue("dateTime", aEventJson);

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss z");

    simpleDateFormat.setTimeZone(TimeZone.getTimeZone(strDefaultTimeZone));

    String formattedDate = simpleDateFormat.format(aDate);

    这应该工作。

    Salman Khakwani answered 2020-08-11T19:31:45Z

    展开全文
  • 使用date命令:将当前系统时间转换为UNIX时间戳$date +%s...如果要将任意UTC时间转换为UNIX时间戳的话:?View Code BASH12$date -d '2010-01-12 utc' +%s1263254400相反的如果要将UNIX时间戳转换为UTC时间则是:$dat...

    使用date命令:

    将当前系统时间转换为UNIX时间戳

    $date +%s

    1263236513

    +%s是date的格式控制,上面命令的意思其实就是将当前系统时间以UNIX时间戳的形式输出。

    如果要将任意UTC时间转换为UNIX时间戳的话:

    ?View Code BASH

    1

    2

    $date -d '2010-01-12 utc' +%s

    1263254400

    相反的如果要将UNIX时间戳转换为UTC时间则是:

    $date -d '1970-01-01 utc 1263236311 seconds'  +%Y-%m-%d-%H:%M:%S

    2010-01-12-02:58:31

    由此可以看出linux下的date命令还是十分强大的,更详细的介绍参看info date.

    使用Python:

    将当前系统时间转换为UNIX时间戳

    >>> import time

    >>> time.time()

    1263239477.4449849

    如果要将任意UTC时间转换为UNIX时间戳的话:

    >>> import time

    >>> time.time()

    1263239477.4449849

    >>> import datetime

    >>> d1 = datetime.datetime(2010,1,12,2,28,01)

    >>> t1 = time.mktime(d1.timetuple())

    >>> print t1

    1263234481.0

    >>> d2 = time.localtime(t1)

    mktime()函数是将time对象转为一个浮点数(即UNIX时间戳)。可以用localtime()再将浮点数转换

    为time对象。

    相反的如果要将UNIX时间戳转换为UTC时间则使用的是time.localtime()函数。

    还有一个很有用的函数就是 time.strptime(string[,format]):

    用来从一个字符串中按照一定的格式提取出一个struct_time,例如:

    >>> import  time

    >>> time.strptime("2010-1-12", "%Y-%m-%d")

    time.struct_time(tm_year=2010, tm_mon=1, tm_mday=12, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=12, tm_isdst=-1)

    其中的format转意符跟date命令中的相同,如下:

    format转义符对应意义如下

    %a 本地简化星期名称

    %A 本地完整星期名称

    %b 本地简化的月份名称

    %B 本地完整的月份名称

    %c 本地相应的日期表示和时间表示

    %d 月内中的一天(0-31)

    %H 24小时制小时数(0-23)

    %I 12小时制小时数(01-12)

    %j 年内的一天(001-366)#hi.baidu.com/muinlive

    %m 月份(01-12)

    %M 分钟数(00=59)

    %p 本地A.M.或P.M.的等价符

    %S 秒(00-59)

    %U 一年中的星期数(00-53)星期天为星期的开始

    %w 星期(0-6),星期天为星期的开始

    %W 一年中的星期数(00-53)星期一为星期的开始

    %x 本地相应的日期表示

    %X 本地相应的时间表示

    %y 两位数的年份表示(00-99)

    %Y 四位数的年份表示(000-9999)

    %Z 当前时区的名称

    %% %号本身

    展开全文
  • MySQL是否可以在普通的select语句中直接将存储的UTC时间转换为本地时区时间?假设您有一些带有时间戳(UTC)的数据。CREATE TABLE `SomeDateTable` (`id` int(11) NOT NULL auto_increment,`value` float NOT NULL ...

    MySQL是否可以在普通的select语句中直接将存储的UTC时间转换为本地时区时间?

    假设您有一些带有时间戳(UTC)的数据。

    CREATE TABLE `SomeDateTable` (

    `id` int(11) NOT NULL auto_increment,

    `value` float NOT NULL default '0',

    `date` datetime NOT NULL default '0000-00-00 00:00:00',

    PRIMARY KEY (`id`)

    )

    那当我

    "select value, date from SomeDateTable";

    我当然会以存储的UTC形式获取所有日期。

    但是,假设我想将它们设置在另一个时区(使用DST),然后可以向选择查询添加一些魔术,以便使所有日期恢复为所选时区吗?

    "select value, TIMEZONE(date, "Europe/Berlin") from SomeDateTable";

    还是我必须在顶部的其他某些层(例如某些php代码)中执行此操作?(这似乎是大多数人解决此问题的方式)。

    谢谢约翰

    如果您的MySQL安装允许您使用CONVERT_TZ,那么这是一个非常干净的解决方案,这个例子展示了如何使用它。

    SELECT CONVERT_TZ( '2010-01-01 12:00', 'UTC', 'Europe/Stockholm' )

    但是我不知道这是否是一个好方法,因为某些MySQL安装缺少此功能,请谨慎使用。

    展开全文
  • 最近使用GPS模块获取解析GPRMC数据的时候,获取到的是UTC时间,需要转换为北京时间,网上看了一些文章,发现存在一些问题,于是自己完善了一下,并做了注释,方便理解。 typedef struct { uint16_t ...
  • 整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal ...北京时区是东八区,领先UTC八个小时,在电子邮件信头的Date域记...
  • 我想使用内置的Java 8时间库将UTC转换为PST / PDT.我正在编写一个与API对话的程序,该API根据时间范围返回对象列表.例如.从特定日期时间创建/修改的对象.我的程序使用LocalDateTime,值始终为UTC.API接受PST / PDT....
  • UTC时间转换为本地时间格式

    千次阅读 2019-04-18 10:11:54
    new Date('2018-08-06T10:00:00.000Z').toLocaleString().replace('上午', 'AM 0').replace('下午', 'PM 0').replace(/\//g, '-') 参考二:Java方法: package jp.misumi.wos.components.service.hp; import java...
  • 你确定你知道如何将日期转换为UTC并返回?正确?恐怕我怀疑.>是的.>你不需要转换,你只需要分配正确的TimeZone.>你需要一篇文章?好的,我正在做这件事,但现在让我在这里给出答案.第一件事先.您的程序应该在...
  • Date.prototype.format = function (format) { var o = { "M+": this.getMonth() + 1, //month "d+": this.getDate(), //day "h+": this.getHours(), ...
  • 最近做项目,遇到时间转换问题。时间控件,返回的时间格式是UTC格式的。 接下来,因为要做两个时间进行比较。于是就想了各种办法。 通过测试,写了一个JS的转换器。来达到转换成正常格式(yyyy-MM-dd) JS代码...
  • I am working with dates that are on an API response. Date coming from API are in ... I need to convert the EST (technically EDT) date to UTC and then compare with dates from another API response whos...
  • // 将时间戳转换成日期格式:function timestampToTime(timestamp) {var date = new Date(timestamp);//时间戳10位需*1000,时间戳13位的话不需乘1000var Y = date.getFullYear() + '年';var M = (date.getMonth...
  • 如何将日期时间转换为等效的标准GMT时间。我尝试使用sampleDateFormat.parse()方法。但是,我无法获得类似UTC偏移量的TimeZone对象。sampleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC+14:00"))请帮助我将...
  • 有时使用一些公开api会碰到UTC时间格式,而将UTC时间格式转换成本地时间格式可以采用以下js办法 UTCformat (utc) { var date = new Date(utc), year = date.getFullYear(), month = date.getMonth()+1 > 9 ? ...
  • JS UTC时间格式字符串: 2019-05-28T09:00:20.000Z...在浏览器里面执行这个new Date('2019-05-28T09:00:20.000Z')代码,会把这个“2019-05-28T09:00:20.000Z”UTC协调时间自动转换为本电脑本地时区的本地时间 ...
  • <p>I am saving date/time in UTC timezone in my database. like : <strong>2015-07-22 17:08:11</strong></p> <p>I want to convert this time to pacific time zone <strong>2015-07-22 11:07:18</strong>. ...
  • 例如:将2017-11-18T07:12:06.615Z格式的时间转化单位的Long类型 代码如下: public class Test { public static void main(String[] args) { //此方法是将2017-11-18T07:12:06.615Z格式的时间转化...
  • 世界时区由于世界各国家所处的地区经度不同,地方时也有所不同,因此划分...在Linux系统中,使用date命令可以用来显示CST时间,若加上-u选项,则会显示UTC时间datedate -udate命令其中,UTC 代表 世界协调时间(U...
  • <p>The issue is that you can't just use the timestamp from an MySQL database (format: Y-m-d H:i:s) in the Highchart script as the Javascript Date.UTC counts the months differently... minus 1 so from ...
  • 时间转换为UTC

    2017-04-24 17:58:06
    // $date = date('Y-m-d H:i:s', $date); } else { $date = date('Y-m-d H:i:s'); $date = new DateTime($date); $date->setTimezone(new DateTimeZone('UTC')); } </code></pre> </div>
  • 如果您需要服务器位置以外的转换,此功能允许您传递标准偏移量并记录美国夏令时:-- =============================================-- Author: Ron Smith-- Create date: 2013-10-23-- Description: Converts UTC ...
  • created_at为UTC时间字符串如"2017-09-21T01:28:27"转换成北京时间"09/20 09:59"let localTime = moment.utc(created_at).toDate(); localTime = moment(localTime).format("MM/DD hh:mm");
  • 二、将获取的UTC字符串转换为北京时间。 /* T代表时间分隔符,Z代表世界时 */ QString utc = "2020-12-18T07:40:01.000Z"; QDateTime date = QDateTime::fromString(utc, "yyyy-MM-ddTHH:mm:ss.zzzZ"); /* UTC+8 */ ...
  • UTC(GMT)整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为...本地时间北京时区是东八区,领先UTC八个小时,在电子邮件信头的Date域记+0800。...
  • 我有一个查询产生这样的结果:...为此,我conditions中的(markers_id, date)的每个组合获取MAX(time)值的列表,然后将该列表加入到我从当前查询获得的行集中,并使用MAX(time)值进行排序:SELECTm.name AS mark...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 354
精华内容 141
关键字:

utc时间转换为date