모멘트 JS UTC에서 로컬 시간
UTC 시간을 현지 시간으로 변환하려고 합니다.이 예시는 http://jsfiddle.net/FLhpq/4/light/ 링크에서 확인했습니다.제대로 된 현지 출력을 얻을 수 없을 것 같아요.예를 들어 오전 10시 30분이면 10시 30분이 아니라 15시 30분이면 됩니다.코드는 다음과 같습니다.
var date = moment.utc().format('YYYY-MM-DD HH:mm:ss');
var localTime = moment.utc(date).toDate();
localTime = moment(localTime).format('YYYY-MM-DD HH:mm:ss');
console.log("moment: " + localTime);
내가 무엇을 하든 시간은 항상 UTC 시간에 나온다.나는 휴스턴에 살고 있기 때문에 시간대가 문제라는 것을 알고 있다.링크의 코드를 따라 해봤지만 현지 시간을 알 수 있을 것 같습니다.내가 뭘 잘못하고 있지?
UTC 시간을 로컬로 변환하려면moment.local()
.
자세한 내용은 문서를 참조하십시오.
예:
var date = moment.utc().format('YYYY-MM-DD HH:mm:ss');
console.log(date); // 2015-09-13 03:39:27
var stillUtc = moment.utc(date).toDate();
var local = moment(stillUtc).local().format('YYYY-MM-DD HH:mm:ss');
console.log(local); // 2015-09-13 09:39:27
데모:
var date = moment.utc().format();
console.log(date, "- now in UTC");
var local = moment.utc(date).local().format();
console.log(local, "- UTC now to local");
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
이것을 시험해 보세요.
let utcTime = "2017-02-02 08:00:13";
var local_date= moment.utc(utcTime).local().format('YYYY-MM-DD HH:mm:ss');
let utcTime = "2017-02-02 08:00:13.567";
var offset = moment().utcOffset();
var localText = moment.utc(utcTime).utcOffset(offset).format("L LT");
이 JsFiddle을 사용해 보세요
UTC를 현지 시간으로 변환하려면
let UTC = moment.utc()
let local = moment(UTC).local()
또는 현지 시간을 직접 얻으려면
let local = moment()
var UTC = moment.utc()
console.log(UTC.format()); // UTC time
var cLocal = UTC.local()
console.log(cLocal.format()); // Convert UTC time
var local = moment();
console.log(local.format()); // Local time
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
참고: 날짜 형식을 적절하게 업데이트하십시오.
포맷 날짜
__formatDate: function(myDate){
var ts = moment.utc(myDate);
return ts.local().format('D-MMM-Y');
}
포맷 시간
__formatTime: function(myDate){
var ts = moment.utc(myDate);
return ts.local().format('HH:mm');
},
오래된 질문이긴 한데, 제가 찾던 걸 제대로 못 찾았어요.시간대 없이 포맷된 UTC datetime을 가지고 있었습니다.그래서 이렇게 해야 했어요.
let utcDatetime = '2021-05-31 10:20:00';
let localDatetime = moment(utcDatetime + '+00:00').local().format('YYYY-MM-DD HH:mm:ss');
UTC에서 현지시간으로, 그리고 현지시간에서 UTC로 왕복하는 Codesandbox를 작성했습니다.시간대 및 형식을 변경할 수 있습니다.맛있게 드세요!
Codesandbox(DEMO)의 전체 예:
https://codesandbox.io/s/momentjs-utc-to-local-roundtrip-foj57?file=/src/App.js
다음은 Intl api를 사용하여 수행하는 작업입니다.
let currentTimeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone; // For example: Australia/Sydney
시간대 이름이 반환됩니다.이 매개변수를 다음 함수에 전달하여 시간을 가져옵니다.
let dateTime = new Date(date).toLocaleDateString('en-US',{ timeZone: currentTimeZone, hour12: true});
let time = new Date(date).toLocaleTimeString('en-US',{ timeZone: currentTimeZone, hour12: true});
다음과 같은 모멘트를 사용하여 시간을 포맷할 수도 있습니다.
moment(new Date(`${dateTime} ${time}`)).format('YYYY-MM-DD[T]HH:mm:ss');
모든 시간대를 현지 시간으로 변환하는 기능을 하나 만들었습니다.
요건:
1. npm i moment-timezone
function utcToLocal(utcdateTime, tz) {
var zone = moment.tz(tz).format("Z") // Actual zone value e:g +5:30
var zoneValue = zone.replace(/[^0-9: ]/g, "") // Zone value without + - chars
var operator = zone && zone.split("") && zone.split("")[0] === "-" ? "-" : "+" // operator for addition subtraction
var localDateTime
var hours = zoneValue.split(":")[0]
var minutes = zoneValue.split(":")[1]
if (operator === "-") {
localDateTime = moment(utcdateTime).subtract(hours, "hours").subtract(minutes, "minutes").format("YYYY-MM-DD HH:mm:ss")
} else if (operator) {
localDateTime = moment(utcdateTime).add(hours, "hours").add(minutes, "minutes").format("YYYY-MM-DD HH:mm:ss")
} else {
localDateTime = "Invalid Timezone Operator"
}
return localDateTime
}
utcToLocal("2019-11-14 07:15:37", "Asia/Kolkata")
//Returns "2019-11-14 12:45:37"
이것이 나에게 효과가 있었던 것입니다.그것은 순간뿐만 아니라 순간도 필요로 했습니다.
const guess = moment.utc(date).tz(moment.tz.guess());
const correctTimezone = guess.format()
언급URL : https://stackoverflow.com/questions/32540667/moment-js-utc-to-local-time
'programing' 카테고리의 다른 글
하위 프로세스의 출력을 저장합니다.콜을 문자열로 팝업하다 (0) | 2022.12.28 |
---|---|
String.valueOf(null)가 NullPointer를 슬로우하는 이유예외? (0) | 2022.12.28 |
VueJS 구성 요소의 이미지가 로드되지 않습니다. (0) | 2022.12.28 |
mariadb C 커넥터를 링크할 때 참조가 정의되지 않음 (0) | 2022.12.28 |
MySQL 명명 규칙이 있습니까? (0) | 2022.12.28 |